.hmac{gap:var(--s5);grid-template:"sign ticket""check ticket"1fr/1fr 1fr;align-items:start;display:grid}.hmac-sign{grid-area:sign}.hmac-check{grid-area:check}.hmac-ticket{grid-area:ticket}.hmac-counter{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);gap:var(--s5);display:grid}.hmac-field{gap:var(--s3);border-radius:var(--r-md);display:grid}.hmac-field[data-dragging=true]{outline:2px dashed var(--brass);outline-offset:var(--s2)}.hmac-field-head{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.hmac-lbl{font-family:var(--font-mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);display:block}.hmac-hint{text-transform:none;letter-spacing:0;margin-left:var(--s2)}.hmac-input{width:100%;padding:var(--s4);background:var(--surface-0);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-0);transition:border-color var(--dur) var(--ease);font-size:16px;line-height:1.6}textarea.hmac-input{resize:vertical;font-family:var(--font-mono)}.hmac-input:focus{border-color:var(--brass);outline:2px solid var(--focus);outline-offset:2px}.hmac-input::placeholder{color:var(--ink-2);opacity:.65}.hmac-input:disabled{background:var(--surface-2);color:var(--ink-2)}.hmac-key-row{gap:var(--s3);align-items:stretch;display:flex}.hmac-key{min-width:0;font-family:var(--font-mono);letter-spacing:.02em;flex:1}.hmac-reveal{min-width:64px;min-height:44px;padding:0 var(--s4);border:1px solid var(--line-firm);border-radius:var(--r-md);background:var(--surface-0);color:var(--ink-1);font-size:var(--step--1);transition:background var(--dur) var(--ease);flex:none}.hmac-reveal:hover{background:var(--surface-2)}.hmac-reveal[aria-pressed=true]{background:var(--surface-2);color:var(--ink-0)}.hmac-under{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.hmac-file{cursor:pointer;flex:none;position:relative}.hmac-file input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.hmac-file span{min-height:44px;padding:0 var(--s4);border:1px solid var(--line-firm);border-radius:var(--r-md);color:var(--ink-1);font-size:var(--step--1);align-items:center;display:inline-flex}.hmac-file input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.hmac-clear{min-height:44px;padding:0 var(--s3);color:var(--ink-1);font-size:var(--step--1);text-underline-offset:3px;text-decoration:underline}.hmac-clear:hover{color:var(--ink-0)}.hmac-note{color:var(--ink-2);font-size:var(--step--1);flex:14ch;margin:0}.hmac-error{color:var(--error);font-size:var(--step--1);margin:0}.hmac-seg{background:var(--surface-2);border-radius:var(--r-md);gap:2px;padding:3px;display:flex}.hmac-seg-wide{flex-wrap:wrap}.hmac-seg button{min-width:44px;min-height:44px;padding:0 var(--s3);color:var(--ink-1);font-size:var(--step--1);font-family:var(--font-mono);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:7px}.hmac-seg button.on{background:var(--surface-0);color:var(--ink-0);box-shadow:var(--shadow-1)}.hmac-ticket{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);min-height:320px;box-shadow:var(--shadow-1);transition:box-shadow .26s var(--ease), border-color .26s var(--ease);position:relative}.hmac-ticket.has{box-shadow:var(--shadow-2);border-color:var(--line-firm)}.hmac-stub{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.hmac-mono{font-family:var(--font-mono)}.hmac-no{color:var(--brass-lo);font-size:var(--step--1);letter-spacing:.04em}.hmac-meta{color:var(--ink-2);font-size:var(--step--1);text-align:end}.hmac-perf{height:1px;margin:var(--s4) calc(-1 * var(--s5));background-image:linear-gradient(90deg, var(--line-firm) 55%, transparent 0);background-size:9px 1px;position:relative}.hmac-perf:before,.hmac-perf:after{content:"";border-radius:var(--r-full);background:var(--surface-0);border:1px solid var(--line);width:14px;height:14px;position:absolute;top:-7px}.hmac-perf:before{left:-7px}.hmac-perf:after{right:-7px}.hmac-status{margin:0 0 var(--s4);color:var(--ink-1);font-size:var(--step--1)}.hmac-empty{color:var(--ink-2);font-size:var(--step--1);margin:0}.hmac-progress{width:100%;accent-color:var(--brass);margin-bottom:var(--s4)}.hmac-verdict{gap:var(--s2);padding:var(--s4);border-radius:var(--r-md);border-inline-start:3px solid var(--line-firm);background:var(--surface-0);font-size:var(--step--1);margin:0;display:grid}.hmac-verdict strong{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-0)}.hmac-verdict span{color:var(--ink-1)}.hmac-verdict-match{border-inline-start-color:var(--ok)}.hmac-verdict-mismatch{border-inline-start-color:var(--error)}.hmac-verdict-unreadable{border-inline-start-color:var(--warn-surface)}.hmac-verdict-mismatch strong{color:var(--error)}.hmac-out{gap:var(--s4);margin:0;display:grid}.hmac-out dt{font-family:var(--font-mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin-bottom:var(--s2)}.hmac-out dd{align-items:flex-start;gap:var(--s3);margin:0;display:flex}.hmac-value{min-width:0;padding:var(--s3);background:var(--surface-0);border-radius:var(--r-sm);font-size:var(--step--1);overflow-wrap:anywhere;color:var(--ink-0);animation:hmac-land .3s var(--ease) both;flex:1;line-height:1.7;display:block}.hmac-copy{min-width:44px;min-height:44px;padding:0 var(--s4);border-radius:var(--r-md);background:var(--brass);color:var(--on-brass);transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);flex:none;font-weight:500}.hmac-copy:hover{background:var(--brass-hi)}.hmac-copy:active{transform:translateY(1px)}.hmac-foot{margin-top:var(--s4)}@keyframes hmac-land{0%{opacity:0;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.hmac-value{animation:none}.hmac-ticket,.hmac-input,.hmac-seg button,.hmac-reveal,.hmac-copy{transition:none}.hmac-copy:active{transform:none}}@media (width<=820px){.hmac{grid-template-rows:none;grid-template-columns:1fr;grid-template-areas:"sign""ticket""check"}.hmac-ticket{min-height:0}.hmac-field-head{align-items:flex-start}.hmac-under{flex-direction:column;align-items:flex-start}.hmac-out dd{flex-wrap:wrap}.hmac-copy{width:100%}}
