/* DOC N.I.L. / Signal System controls.
   Retains the established filename and hooks; one flat, precise control family. */
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  button:not(.home-game-target,.wp-screen,.wp-case-hero-screen,.wp-hero-screen),
  input[type="submit"],input[type="button"],input[type="reset"],
  a.button,a.dn-button,a.hb-button,a.mw-button,a.wp-button,a.calc-button,
  a.nav-contact,a.hb-nav-cta,a.case-action,a.case-hero-action,a.case-close-action
){
  --dn-control-bg:var(--dn-graphite,#161718);
  --dn-control-ink:var(--dn-paper,#e7e6e1);
  --dn-control-edge:#737677;
  --dn-control-hover:var(--dn-carbon,#080808);
  --dn-control-hover-ink:var(--dn-paper,#e7e6e1);
  --dn-control-hover-edge:var(--dn-paper,#e7e6e1);
  border-style:solid;
  border-width:1px;
  border-radius:0!important;
  background:var(--dn-control-bg)!important;
  color:var(--dn-control-ink)!important;
  border-color:var(--dn-control-edge)!important;
  box-shadow:none!important;
  text-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  font-family:var(--dn-font-system,"Helvetica Neue",Arial,sans-serif);
  font-size:.8125rem;
  font-weight:600;
  line-height:1.35;
  letter-spacing:.015em;
  text-decoration:none;
  text-wrap:pretty;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
  -webkit-tap-highlight-color:#fa603733;
}

/* Orange identifies a primary action or an explicitly selected control. */
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  a.button-dark,a.button-signal,a.dn-button-orange,a.nav-contact,a.hb-nav-cta,
  .calc-button:not(.calc-button-light),button[type="submit"],input[type="submit"],
  a.case-action,a.case-close-action,
  button[aria-selected="true"],button[aria-pressed="true"]:not(.hb-motion,.motion-toggle,.home-game-target)
){
  --dn-control-bg:var(--dn-signal,#fa6037);
  --dn-control-ink:var(--dn-carbon,#080808);
  --dn-control-edge:var(--dn-signal,#fa6037);
  --dn-control-hover:var(--dn-paper,#e7e6e1);
  --dn-control-hover-ink:var(--dn-carbon,#080808);
  --dn-control-hover-edge:var(--dn-paper,#e7e6e1);
}

/* Outlined controls inherit the ink of their actual section. */
:is(.docnil-glass-buttons,.dnwide-case-page) :is(a.button-outline,a.dn-button-outline){
  --dn-control-bg:transparent;
  --dn-control-ink:inherit;
  --dn-control-edge:currentColor;
  --dn-control-hover:var(--dn-carbon,#080808);
  --dn-control-hover-ink:var(--dn-paper,#e7e6e1);
  --dn-control-hover-edge:var(--dn-signal,#fa6037);
}
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  a.button-light,.calc-button-light,.home-game-button,
  .service-presets button,.example-bar button
){
  --dn-control-bg:var(--dn-paper,#e7e6e1);
  --dn-control-ink:var(--dn-carbon,#080808);
  --dn-control-edge:#8c8f8f;
  --dn-control-hover:var(--dn-carbon,#080808);
  --dn-control-hover-ink:var(--dn-paper,#e7e6e1);
  --dn-control-hover-edge:var(--dn-carbon,#080808);
}

/* These remain neutral so motion and menu state never compete with the CTA. */
:is(.docnil-glass-buttons,.dnwide-case-page) :is(.hb-motion,.hb-menu,.motion-toggle,.menu-toggle){
  --dn-control-bg:transparent;
  --dn-control-ink:var(--dn-paper,#e7e6e1);
  --dn-control-edge:#737677;
  --dn-control-hover:var(--dn-graphite,#161718);
  --dn-control-hover-ink:var(--dn-paper,#e7e6e1);
  --dn-control-hover-edge:var(--dn-signal,#fa6037);
}

/* Standard actions get a comfortable target; canvas/game targets retain sizing. */
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  a.button,a.dn-button,a.hb-button,a.mw-button,a.wp-button,a.calc-button,
  a.nav-contact,a.hb-nav-cta,a.case-action,a.case-hero-action,a.case-close-action,
  .home-game-button,button[type="submit"],input[type="submit"],
  .calc-button,.calc-add,.ps-replay,[data-sm-replay]
){
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(.75rem,1.5vw,1.5rem);
  min-height:48px;
  padding:14px 20px;
  max-width:100%;
}

@media(hover:hover){
  :is(.docnil-glass-buttons,.dnwide-case-page) :is(
    button:not(.home-game-target,.wp-screen,.wp-case-hero-screen,.wp-hero-screen),
    input[type="submit"],input[type="button"],input[type="reset"],
    a.button,a.dn-button,a.hb-button,a.mw-button,a.wp-button,a.calc-button,
    a.nav-contact,a.hb-nav-cta,a.case-action,a.case-hero-action,a.case-close-action
  ):not(:disabled,[aria-disabled="true"]):hover{
    background:var(--dn-control-hover)!important;
    color:var(--dn-control-hover-ink)!important;
    border-color:var(--dn-control-hover-edge)!important;
    box-shadow:none!important;
    filter:none!important;
  }
}
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  button:not(.home-game-target,.wp-screen,.wp-case-hero-screen,.wp-hero-screen),
  input[type="submit"],input[type="button"],input[type="reset"],
  a.button,a.dn-button,a.hb-button,a.mw-button,a.wp-button,a.calc-button,
  a.nav-contact,a.hb-nav-cta,a.case-action,a.case-hero-action,a.case-close-action
):focus-visible{
  outline:2px solid var(--dn-signal,#fa6037)!important;
  outline-offset:4px;
}
:is(.docnil-glass-buttons,.dnwide-case-page) :is(
  button:not(.home-game-target,.wp-screen,.wp-case-hero-screen,.wp-hero-screen),
  input[type="submit"],input[type="button"],input[type="reset"],
  a.button,a.dn-button,a.hb-button,a.mw-button,a.wp-button,a.calc-button,
  a.nav-contact,a.hb-nav-cta,a.case-action,a.case-hero-action,a.case-close-action
):not(:disabled,[aria-disabled="true"]):active{
  border-color:var(--dn-signal,#fa6037)!important;
  box-shadow:inset 0 0 0 1px var(--dn-control-edge)!important;
}
:is(.docnil-glass-buttons,.dnwide-case-page) :is(button,input[type="submit"],input[type="button"],input[type="reset"]):disabled,
:is(.docnil-glass-buttons,.dnwide-case-page) :is(a.button,a.dn-button,a.calc-button,a.wp-button)[aria-disabled="true"]{
  opacity:.45;
  cursor:not-allowed;
  box-shadow:none!important;
}
@media(prefers-reduced-motion:reduce){
  :is(.docnil-glass-buttons,.dnwide-case-page) :is(button,input,a.button,a.dn-button,a.hb-nav-cta,a.calc-button){transition:none!important}
}
html[data-motion="off"] :is(.docnil-glass-buttons,.dnwide-case-page) :is(button,input,a.button,a.dn-button,a.hb-nav-cta,a.calc-button){transition:none!important}
@media(forced-colors:active){
  :is(.docnil-glass-buttons,.dnwide-case-page) :is(button,input[type="submit"],input[type="button"],input[type="reset"],a.button,a.dn-button,a.calc-button,a.wp-button,a.hb-nav-cta){
    background:ButtonFace!important;color:ButtonText!important;border-color:ButtonText!important;box-shadow:none!important;
  }
}
