/* Компоненты (DESIGN.md §6), бюджет 24 КБ; лист — base.css */
@layer components {
/* §6.1 шапка и меню */
.hdr{position:sticky;top:0;z-index:var(--z-hdr);display:flex;align-items:center;gap:var(--s3);max-width:var(--sheet-max);height:var(--hdr-h);margin:auto;padding:0 16px;background:var(--desk);border-bottom:1px solid var(--rule);transition:transform 240ms var(--ease-mech)}
.hdr.is-hidden:not(.is-open,:focus-within){transform:translateY(-100%)}
.hdr__brand,.nav__a,.nav__tel,.tel__a,.crumbs__item a{display:flex;align-items:center;min-height:44px}
.hdr__brand,.nav__a,.nav__tel{gap:10px;color:var(--ink);text-decoration:none;white-space:nowrap}
.hdr__mark{flex:none;color:var(--line)}
.hdr__name{font:500 18px/1 var(--font-sans)}
.hdr__sub,.nav{display:none}
.hdr__sheet{margin-left:auto}
.hdr__menu{display:grid;place-items:center;min-width:64px;min-height:44px;padding:0 14px;border:1px solid var(--rule);color:var(--ink);font:var(--f-btn);text-decoration:none}
.nav__a,.nav__tel{font:var(--f-mono);gap:8px}
@media(max-width:767px){
.hdr.is-open .nav{display:block;position:absolute;z-index:var(--z-menu);inset:100% 0 auto;max-height:calc(100svh - var(--hdr-h));overflow-y:auto;padding:var(--s2) 16px var(--s4);background:var(--sheet-2);border:1px solid var(--rule)}
.nav :is(.nav__a,.nav__tel){min-height:52px;font-size:15px;border-bottom:1px solid var(--rule)}
}
@media(min-width:768px){
.hdr{position:relative;padding:0 calc(var(--frame) + var(--pad)) 0 calc(var(--frame-l) + var(--pad));border:0;transform:none!important}
.hdr__menu,.hdr__sheet,.nav__item--home,.nav__tel,.hdr .motion-toggle{display:none}
.nav{display:flex;flex:none;align-items:center;gap:var(--s4);margin-left:auto}
.nav__list{display:flex;gap:var(--s3)}
.nav__a{position:relative}
.nav__a[aria-current=page]::after{content:"";position:absolute;inset:auto 0 6px;height:5px;background:var(--cyan);mask:var(--dim-mask)}
.nav__a:hover{color:var(--cyan)}
}
/* подпись знака — многоточием, меню не за краем */
@media(min-width:1100px){.hdr__brand{min-width:0}.hdr .motion-toggle{display:inline-flex}}@media(min-width:1360px){.hdr__sub{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;padding-left:var(--s3);border-left:1px solid var(--rule)}}
@media(min-width:1280px){.nav{gap:var(--s5)}.nav__list{gap:var(--s4)}}
@media(min-width:860px){.nav__tel{display:flex}}
/* §12.4 «Пауза анимации» */
.motion-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border:0;background:none;color:var(--ink-2);font:var(--f-mono);text-decoration:underline dashed 1px var(--hidden);text-underline-offset:4px}
.motion-toggle[aria-pressed=true]{color:var(--ink)}.motion-toggle[aria-disabled=true]{cursor:default;text-decoration:none}
/* листы главной ниже первого экрана */
.sheets>.sheet:nth-child(n+2){content-visibility:auto;contain-intrinsic-size:auto 900px}
/* §6.3 шапка документа */
.doc-head{display:grid;gap:var(--s4);margin-bottom:var(--s6)}
.crumbs__list{display:flex;flex-wrap:wrap;gap:4px 8px;font:var(--f-mono);color:var(--ink-2)}
.crumbs__item{display:flex;align-items:center;gap:8px}
.crumbs__item+.crumbs__item::before{content:"";width:12px;height:12px;background:currentColor;mask:var(--chev-r)}
.crumbs__item a{margin-block:-13px}
/* §6.4 кадр контроля (луч, ЛСО, лупа — scan.js) */
.qc{container:qc/inline-size;position:relative;min-width:0}
.qc__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--s3);margin-bottom:var(--s2)}
.qc__stage{position:relative;background:var(--sheet-2)}
.qc__stage>picture,.qc__duo{display:block;width:100%;height:100%}
.qc__line,.qc__beam,.qc__marks,.qc__cross{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.qc__line{z-index:1;mix-blend-mode:screen;opacity:.3;clip-path:inset(0 0 calc((1 - var(--scan,1))*100%) 0);transition:opacity 600ms var(--ease-settle)}
.qc.is-scanning .qc__line{opacity:.9}
.qc.is-contour .qc__line,.qc.is-scanning .qc__beam{opacity:1}
.qc__beam{z-index:1;overflow:hidden;opacity:0}
.qc__beam::before{content:"";position:absolute;inset:auto 0 100%;height:100%;translate:0 calc(var(--scan,0)*100%);background:linear-gradient(#0000 calc(100% - 66px),#8CE2FF59 calc(100% - 2px),var(--cyan) 0)}
.qc__marks{z-index:var(--z-box)}.qc__box,.qc__plate,.qc__pin{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%)}
.qc__box,.qc__plate{width:calc(var(--w)*1%);height:calc(var(--h)*1%)}
.qc__box::before{content:"";position:absolute;inset:0;border:1.5px solid var(--cyan);mask:conic-gradient(at 10px 10px,#0000 75%,#000 0) 0 0/calc(100% - 10px) calc(100% - 10px)}
[data-kind=aux]::before{border:1px dotted var(--cyan);opacity:.7;mask:none}
[data-kind=crew]::before{mask:linear-gradient(#000 0 0) 0 0/10px 100% no-repeat,linear-gradient(#000 0 0) 100% 0/10px 100% no-repeat}
[data-kind=part]::before{border-width:1px;mask:none}
.qc__box::after,.callout[data-n]::after{place-items:center;width:22px;height:22px;border:1px solid;border-radius:50%;font:450 12px/1 var(--font-mono)}
.qc__box::after{content:attr(data-n);position:absolute;left:-11px;top:-11px;display:none;border-color:var(--cyan);background:var(--sheet-2);color:var(--ink)}
.qc__tag,.qc__xy,.qc__plate-t{padding:1px 6px;background:var(--sheet-2);color:var(--ink);white-space:nowrap}
.qc__tag{position:absolute;z-index:var(--z-cap);left:0;bottom:calc(100% + 4px);border-left:1px solid var(--cyan);font:var(--f-code)}
.qc__tag::before,.qc__plate-t::before{content:attr(data-t)}
[data-tag-side=below]>.qc__tag{top:calc(100% + 4px);bottom:auto}
[data-kind=crew]>.qc__tag{left:50%;top:6px;bottom:auto;translate:-50%}
[data-kind=part]>.qc__tag{left:16px}
.js[data-motion=on] .qc[data-scan]:not(.is-accepted,.is-calib) .qc__box:not(.is-captured){opacity:0}
.is-captured::before{animation:qc-grab 240ms steps(3) both}
.is-captured>.qc__tag{animation:qc-in 200ms 240ms both}
@keyframes qc-grab{from{scale:1.3}}
@keyframes qc-in{from{opacity:0}}
.is-calib .qc__tag{display:block!important}
.is-calib .qc__tag::after{content:" · " attr(data-c);color:var(--signal)}
.qc__plate{z-index:var(--z-plate);display:grid;place-items:center;overflow:hidden;border:1px solid var(--cyan);background:var(--hatch),var(--sheet-2)}
.qc__pin,.callout{position:absolute;z-index:var(--z-cap);pointer-events:none;color:var(--cyan)}
.qc__pin::before,.callout::before{content:"";position:absolute;left:-1.5px;top:-1.5px;width:35.5px;height:3px;transform-origin:1.5px;rotate:-45deg;background:radial-gradient(circle at 1.5px,currentColor 1.5px,#0000 1.6px),linear-gradient(currentColor 0 0) 0 1px/100% 1px no-repeat}
.qc__pin::after,.callout::after{position:absolute;left:24px;bottom:24px;padding:0 6px 2px;border-bottom:1px solid;background:#0A2342B3;color:var(--ink);font:var(--f-obl);white-space:nowrap}
.qc__pin::after{content:attr(data-t)}
.qc__cross,.qc__loupe{z-index:5;opacity:0;overflow:hidden}
.is-probe :is(.qc__cross,.qc__loupe){opacity:1}
.qc__cross>*{position:absolute;left:0;top:0;width:1px;height:100%;background:#8CE2FF66}
.qc__cross>.qc__cross-x{width:100%;height:1px}.qc__cross>.qc__xy{width:auto;height:auto;background:var(--sheet-2)}
.qc__loupe{position:absolute;left:0;top:0;width:140px;height:140px;border:1px solid var(--cyan);border-radius:50%;background:var(--sheet) no-repeat;background-blend-mode:screen;pointer-events:none}
.qc__toggle{position:absolute;z-index:5;right:8px;top:8px;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--sheet-2);color:var(--ink);font:var(--f-btn)}
.qc__toggle[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan)}.qc__dim{position:absolute;display:none;text-align:center}
.qc__dim::after{content:"";position:absolute;background:currentColor}
.qc__dim--w{inset:auto 0 calc(100% + 4px);height:20px}
.qc__dim--w::after{inset:auto 0 0;height:5px;mask:var(--dim-mask)}
.qc__dim--h{inset:0 auto 0 calc(100% + 6px);width:20px;writing-mode:vertical-rl}
.qc__dim--h::after{inset:0 auto 0 0;width:5px;mask:var(--dim-mask-v)}
.bleed-r .qc__dim--h{left:auto;right:calc(100% + 6px);rotate:180deg}
@media(min-width:1100px){
.qc__dim{display:block}
.qc__stage:has(>.qc__dim--w){margin-top:24px}
.qc__stage:has(>.qc__dim--h){margin-right:28px}
.bleed-r .qc__stage:has(>.qc__dim--h){margin-right:0;margin-left:28px}
}
.qc__cap{margin-top:var(--s3)}.qc__legend{display:flex;flex-wrap:wrap;gap:2px 14px;color:var(--ink-2)}
.qc__legend [data-n]::before{content:attr(data-n) "\a0— ";content:attr(data-n) "\a0— "/""}
.qc__text{margin-top:var(--s2);font-size:15px;line-height:1.5;color:var(--ink-2)}
@container qc (max-width:479px){
.qc__tag{display:none}
.qc__box::after{display:grid}
.qc__legend{display:grid;gap:6px;color:var(--ink)}
}
@container qc (max-width:559px){.qc__plate-t{display:none}}
@container qc (max-width:320px){.qc__dim{display:none!important}.qc__stage{margin:0!important}}
@container qc (max-width:379px){.qc__pin::before{rotate:45deg;width:69.4px}.qc__pin::after{left:48px;bottom:-48px}}
@media(max-width:767px){.qc__tag{display:none}.qc__box::after{display:grid}.qc__legend{display:grid;gap:6px;color:var(--ink)}}
.qc--hero .qc__stage::after{content:"";position:absolute;inset:-6px;z-index:var(--z-cap);border:1px solid var(--line);pointer-events:none;mask:conic-gradient(at 16px 16px,#0000 75%,#000 0) 0 0/calc(100% - 16px) calc(100% - 16px)}
[data-kind=part]::after{display:grid}
/* §6.5 плоттер, облако, зачёркивание, выноска, размер */
[data-plot] [pathLength]{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset var(--ms,600ms) linear calc(var(--i,0)*40ms)}
/* .pen: Chrome не обновит [pathLength] после .is-plotted */
.js[data-motion=on] [data-plot]:not(.is-plotted) :is([pathLength],.pen,.cloud__path){stroke-dashoffset:1}
.is-instant,.is-instant *,.is-instant::before{transition:none!important}
.cloud{position:absolute;inset:0;pointer-events:none;color:var(--cloud-c,var(--cyan))}
.cloud svg{position:absolute;overflow:visible;fill:none;stroke:currentColor}
.cloud__rev path{fill:var(--cloud-bg,var(--sheet))}.cloud__rev text{fill:currentColor;stroke:none;font:450 11px var(--font-mono);text-anchor:middle}
.cloud__rev{transition:opacity 200ms 400ms}
.js[data-motion=on] [data-plot]:not(.is-plotted) .cloud__rev{opacity:0}
html:not(.js) .cloud{inset:4px;outline:1px dashed}
html:not(.js) .cloud::after{content:"△" attr(data-cloud);position:absolute;top:-16px;right:-10px;font:var(--f-code)}
.spec__cell--rev{position:relative}.strike{background:linear-gradient(#FF5B4FB3 0 0) 0 55%/100% 1px no-repeat;box-decoration-break:clone;-webkit-box-decoration-break:clone;transition:background-size var(--t-cloud) linear}
.js[data-motion=on] .strike:not(.is-struck){background-size:0 1px}
.callout{left:var(--x);top:var(--y);color:var(--co,var(--line))}
.callout::before{width:calc(hypot(var(--dx),var(--dy)) + 1.5px);rotate:atan2(var(--dy),var(--dx))}
.callout::after{left:var(--dx);top:var(--dy);bottom:auto;min-width:40px;translate:clamp(-100%,var(--dx)*1000,0%) -100%;padding:0 4px 2px}
.callout[data-t]::after{content:attr(data-t)}
.callout[data-n]::after{content:attr(data-n);left:calc(var(--dx) - 11px);top:calc(var(--dy) - 11px);display:grid;min-width:0;padding:0;translate:none;background:var(--sheet)}
.dim{position:relative;display:block;color:var(--ink-2);text-align:center}
.dim::before{content:attr(data-t);font:var(--f-code);text-transform:uppercase}
.dim::after{content:"";position:absolute;background:var(--line)}
.dim--h{padding-bottom:9px}
.dim--h::after{inset:auto 0 0;height:5px;mask:var(--dim-mask)}
/* §6.6 таблицы */
.spec{width:100%}
:is(.spec,.stamp__changes) :is(th,td){padding:10px 12px;border:1px solid var(--rule);text-align:left;vertical-align:top}
.spec thead th,.spec__cap,.spec th[scope=row]{font:var(--f-mono);color:var(--ink-2)}
.spec thead th,.spec--kv th,.spec--list tr:nth-child(even)>td,.spec :is([data-part],[data-node]):is(:hover,:focus-within,.is-hi)>*{background:var(--sheet-2)}
.spec__cap{padding-bottom:var(--s2);text-align:left}
.spec .spec__pos{width:1%;white-space:nowrap;font-family:var(--font-mono);font-stretch:87.5%}
.spec--kv th{width:34%}.spec--ops{position:relative;margin-left:20px;width:calc(100% - 20px)}
.spec--ops::before{content:"";position:absolute;left:-13px;top:0;bottom:0;width:1px;background:repeating-linear-gradient(var(--line) 0 12px,#0000 0 15px,var(--line) 0 17px,#0000 0 20px);transition:clip-path 900ms linear}
.js[data-motion=on] .spec--ops:not(.is-plotted)::before{clip-path:inset(0 0 100%)}
.spec--ops tr+tr>:first-child{position:relative}
.spec--ops tbody tr+tr>:first-child::before{content:"";position:absolute;left:-17px;top:-4px;width:9px;height:8px;background:var(--line);mask:var(--arw-d) 50%/5px 8px no-repeat}
div.spec--list{display:grid;gap:0 var(--gutter)}
/* не fixed: из-за .sr-only подписи */
div.spec--list .spec__pos{width:60px}
@media(min-width:768px){div.spec--list{grid-template-columns:1fr 1fr}}
@media(max-width:767px){
div.spec--list>.spec+.spec thead,.spec--stack thead{display:none}
.spec--stack,.spec--stack :is(tbody,tr,th,td,caption){display:block;width:auto}
.spec--stack tr{border:1px solid var(--rule);padding:6px 0;margin-top:-1px}
.spec--stack :is(th,td){border:0;padding:6px 12px}
.spec--stack td[data-th]::before{content:attr(data-th);display:block;font:var(--f-mono);color:var(--ink-2)}
.spec--ops.spec--stack .spec__pos{font:semi-expanded 300 28px/1.1 var(--font-mono)}
}
/* §6.7 кнопки, поля, чип, счётчик */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 22px;border:0;border-radius:0;background:none;color:var(--ink);font:var(--f-btn);letter-spacing:.02em;text-decoration:none}
.btn--primary{--b:var(--line);color:var(--sheet);background:linear-gradient(225deg,#0000 7px,var(--b) 0)}.btn--primary:hover{--b:var(--ink)}
.btn--primary::after{content:"";position:absolute;top:0;right:0;width:6px;height:6px;border-radius:50%;background:var(--signal);opacity:.55;transition:opacity var(--t-hover)}
.btn--primary.is-signal::after{opacity:1}.btn--line{border:1px solid var(--line)}
.btn--line:hover,.btn--line[aria-pressed=true]{border-color:var(--cyan)}
.btn--line[aria-pressed=true]{background:repeating-linear-gradient(45deg,#8CE2FF38 0 1px,#0000 0 6px)}
.btn--text{min-height:44px;padding:0 0 10px}
.btn--text::before{content:"";position:absolute;inset:auto 0 2px;height:5px;background:var(--hidden);mask:var(--dim-mask)}
.btn--text:hover::before{background:var(--cyan)}
.btn--block{display:flex;width:100%}
.btn[aria-busy=true]{cursor:progress;overflow:hidden}
[data-motion=on] .btn[aria-busy=true]::before{content:"";position:absolute;inset:0 0 0 -12px;background:repeating-linear-gradient(45deg,#0A234238 0 2px,#0000 0 8.485px);animation:btn-busy .6s linear 3}
@keyframes btn-busy{to{translate:11.314px}}
.btn:disabled{cursor:not-allowed;opacity:.55}
.tel{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.tel__a{font-size:17px;text-decoration:underline dashed 1px var(--hidden);text-underline-offset:5px;white-space:nowrap}
.tel__h{color:var(--ink-2)}
.field{display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px var(--s3);position:relative}
.field>:not(.field__label,.field__code){grid-column:1/-1}
.field__label{font:500 15px/1.3 var(--font-sans)}.field__input{display:block;width:100%;height:52px;padding:0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--sheet-2);color:var(--ink);font:17px/1.3 var(--font-sans);appearance:none}
.field__input:focus-visible{outline-offset:0;border-bottom-color:var(--cyan)}.field__input[aria-invalid=true]{border-bottom-color:var(--alarm)}
.field__input[aria-invalid=true]~.field__hint{color:var(--alarm-text)}
select.field__input{padding-right:40px;background:var(--sel) right 14px center no-repeat var(--sheet-2)}
textarea.field__input{height:auto;min-height:96px;padding:12px;resize:vertical}
.field__hint{font-size:14px;line-height:1.4;color:var(--ink-2)}
.chip{display:inline-block;padding:2px 8px;border:1px solid var(--hidden);white-space:nowrap}.counter{display:grid;justify-items:start;gap:4px}
.counter__n{position:relative;padding-bottom:16px;font-size:clamp(4rem,3rem + 5vw,7.5rem)}
.counter__n::after{content:"";position:absolute;inset:auto 0 0;height:5px;background:var(--line);mask:var(--dim-mask)}
.counter__l,.counter__s{font-size:15px;line-height:1.5}.counter__s{color:var(--ink-2)}
/* §6.8 вопросы */
.faq__h{margin-bottom:var(--s5)}.faq__list{counter-reset:q;display:grid;column-gap:var(--s6)}
.faq__item{counter-increment:q;position:relative;padding:var(--s4) 0 var(--s5);border-top:1px solid var(--rule)}
.faq__item::before{content:counter(q,decimal-leading-zero);content:counter(q,decimal-leading-zero)/"";display:block;margin-bottom:6px;font:var(--f-mono);color:var(--ink-2)}
.faq__q,.faq__a>*+*{margin-bottom:var(--s3)}
@media(min-width:1100px){.faq__item::before{position:absolute;top:24px;right:calc(100% + 12px)}.sheets .faq__list{grid-template-columns:1fr 1fr}}
/* §6.9 бланк заявки */
.req,.req__fields{display:grid;gap:var(--s4) var(--gutter)}
.req__fields{min-width:0;margin:0;padding:0;border:0;align-items:start}
.req__fields>.field:has(textarea){grid-column:1/-1}
.req__actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.req__note,.req__nojs{font-size:15px;line-height:1.5;color:var(--ink-2)}
.req__nojs,html:not(.js) .req__fields{display:none}html:not(.js) .req__nojs{display:block}
@media(max-width:767px){.req__actions>.btn{flex:1 1 100%}}
@media(min-width:768px){.btn{min-height:48px}.field__input{height:48px}.req__fields{grid-template-columns:1fr 1fr}}
/* §6.10 подвал-штамп */
.stamp{max-width:var(--sheet-max);margin:auto;padding:var(--frame);padding-left:var(--frame-l);background:var(--sheet);overflow-x:clip}
.stamp__in{display:grid;gap:1px;border:2px solid var(--line);background:var(--rule)}
.stamp__in>*{min-width:0;padding:var(--s4) var(--pad);background:var(--sheet)}
.stamp__h{margin-bottom:var(--s3);font:var(--f-btn);font-size:15px}
.sostav__row{display:grid;grid-template-columns:28px 1fr;align-items:center;column-gap:var(--s3);min-height:48px;border-top:1px solid var(--rule)}
.sostav__a{padding:13px 0;font-size:17px;line-height:1.35}
.sostav__a[aria-current=page]{font-weight:560;text-decoration-color:var(--cyan)}
.sostav__doc{grid-column:2;margin-top:-8px;padding-bottom:8px}
.stamp__sub,.stamp__addr,.stamp__copy{font-size:15px;line-height:1.6}
.stamp__sub,.stamp__copy,.stamp__now-s,.stamp__changes th,.stamp__kv dt{color:var(--ink-2)}
.stamp__addr,.stamp__now{margin-top:var(--s3)}
.stamp__now{display:grid;grid-template-columns:9px 1fr;gap:2px 8px;align-items:baseline}
.stamp__now::before{content:"";height:9px;border:1px solid var(--hidden)}
.stamp__now[data-state=open]::before{background:var(--cyan);border-color:var(--cyan)}.stamp__now-s{grid-column:2}
.stamp__cells{display:grid;gap:var(--s4);align-content:start;align-items:start}
.stamp__changes{width:100%;font:var(--f-mono)}
.stamp__changes :is(th,td){padding:6px 8px}
.qc__plate-t,.stamp__changes th,.stamp__kv dt{font:var(--f-code);font-stretch:75%;text-transform:uppercase}
.stamp__kv>div{display:grid;grid-template-columns:96px 1fr;gap:var(--s3);padding:6px 0;border-bottom:1px solid var(--rule)}
.stamp__kv dd{font:var(--f-mono)}
.stamp__tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4)}
/* до 1280px: две колонки */
@media(min-width:768px){.stamp__in{grid-template-columns:1fr 1fr}.stamp__tools,.stamp__cells{grid-column:1/-1}.stamp__cells{grid-template-columns:1fr 1fr}}
@media(min-width:1280px){.stamp__in{grid-template-columns:1.25fr 1fr 1.15fr}.stamp__cells{grid-column:auto;grid-template-columns:none}.sostav__row{grid-template-columns:28px 1fr auto}.sostav__doc{grid-column:auto;margin:0;padding:0}}
/* §6.11 мини-штамп */
.ministamp{display:none}
@media(min-width:1100px){
.ministamp:not([hidden]){position:fixed;z-index:var(--z-mini);right:16px;bottom:16px;display:grid;grid-template:1fr 1fr/96px 1fr;gap:1px;width:232px;height:60px;border:1px solid var(--line);background:var(--rule);color:var(--ink-2);text-decoration:none}
.ministamp>*{display:flex;align-items:center;padding:0 8px;background:var(--sheet-2);font-stretch:75%;overflow:hidden;white-space:nowrap}
.ministamp__name{color:var(--ink)}.ministamp__clock{grid-column:1/-1}
}
/* §6.12 3D-холст */
.wire{position:relative;aspect-ratio:var(--ar,1/1)}
.wire__still,.wire__canvas{position:absolute;inset:0;width:100%;height:100%}
.wire__canvas{opacity:0}.wire.is-live .wire__canvas{opacity:1}.wire.is-live .wire__still{visibility:hidden}
.wire[data-drag] .wire__canvas{cursor:grab;touch-action:pan-y}
/* §6.13 калька */
.kalka{--k:6px;--ink:var(--kalka-ink);--ink-2:var(--kalka-ink-2);--line:var(--kalka-ink);--rule:var(--kalka-line);--hidden:var(--kalka-line);--cyan:var(--kalka-link);--sheet:var(--kalka);--sheet-2:color-mix(in srgb,var(--kalka) 84%,var(--kalka-line));--g:#6F8CA84D;--z:calc(100% - var(--k)) calc(100% - var(--k)) no-repeat;
position:relative;padding:var(--s5) calc(var(--pad) + var(--k)) calc(var(--s5) + var(--k)) var(--pad);color:var(--ink);background:repeating-linear-gradient(90deg,var(--g) 0 1px,#0000 0 40px) 0 0/var(--z),repeating-linear-gradient(var(--g) 0 1px,#0000 0 40px) 0 0/var(--z),linear-gradient(var(--kalka) 0 0) 0 0/var(--z),linear-gradient(var(--grid) 0 0) var(--k) var(--k)/var(--z)}
.kalka a{color:var(--kalka-link);text-decoration-color:currentColor}
.sheet.kalka{--f:calc(var(--frame) + var(--pad));padding:var(--f) calc(var(--f) + var(--k)) calc(var(--f) + var(--k)) calc(var(--frame-l) + var(--pad))}
.sheet.kalka::before{right:calc(var(--frame) + var(--k));bottom:calc(var(--frame) + var(--k));background:none}
.sheet.kalka::after{display:none}
@media(min-width:768px){.kalka{--k:8px}}
/* «Смена листа» — переход между страницами (DESIGN.md §22): встроенные переходы браузера (View Transitions).
   Луч сканера проходит экран: выше луча — новый документ, ниже — уходящий лист (гаснет и чуть уменьшается);
   на луче табличка с обозначением документа назначения. «Назад» — луч снизу вверх. Луч и класс направления
   ставит js/boot.js (событие pagereveal); без движения (системная настройка или «Пауза анимации») переход пропускается. */
.vt-beam{position:fixed;left:0;right:0;top:0;z-index:90;height:72px;pointer-events:none;view-transition-name:vt-beam;
  background:linear-gradient(to top,var(--cyan) 0 2px,rgb(140 226 255/.16) 2px,rgb(140 226 255/0))}
.vt-beam::after{content:attr(data-t);position:absolute;right:max(16px,env(safe-area-inset-right));bottom:10px;max-width:calc(100% - 32px);overflow:hidden;
  padding:4px 10px;border-left:1px solid var(--cyan);background:var(--sheet-2);color:var(--cyan);
  font:var(--f-code);font-stretch:87.5%;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}
.vt-back .vt-beam{background:linear-gradient(to bottom,var(--cyan) 0 2px,rgb(140 226 255/.16) 2px,rgb(140 226 255/0))}
.vt-back .vt-beam::after{bottom:auto;top:10px}
::view-transition-group(root){animation:none}
::view-transition-old(root){animation:.68s cubic-bezier(.2,0,0,1) both vt-sink}
::view-transition-new(root){animation:.68s linear both vt-wipe}
.vt-back::view-transition-new(root){animation-name:vt-wipe-up}
::view-transition-group(vt-beam){animation:.68s linear both vt-beam}
.vt-back::view-transition-group(vt-beam){animation-name:vt-beam-up}
::view-transition-new(vt-beam){animation:none}
@keyframes vt-wipe{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes vt-wipe-up{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes vt-sink{to{opacity:.3;scale:.985}}
@keyframes vt-beam{from{transform:translateY(-72px)}to{transform:translateY(calc(100vh - 72px))}}
@keyframes vt-beam-up{from{transform:translateY(100vh)}to{transform:translateY(0)}}
/* браузер без переходов между страницами (Firefox): тот же луч проходит уже открытую новую страницу, текст не закрывает */
.vt-beam.vt-solo{view-transition-name:none;animation:.68s linear both vt-beam}
/* «Сведения закрыты» (поз. 8, §23): закрашенная полоса и подпись */
.redact{display:inline-flex;align-items:center;gap:8px;font:var(--f-mono);color:var(--alarm-text);white-space:nowrap}
.redact::before{content:"";width:5.5em;height:.95em;background:var(--ink-2)}
}
/* Включение переходов между страницами — правило уровня документа, вне слоёв (§22) */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
