/* DRILLMAN controls. Keep appearance here; page styles only arrange controls. */
.forum-site {
  --control-height: 32px;
  --control-radius: 2px;
  --control-font-size: 14px;
  --control-line-height: 20px;
  --control-icon-size: 16px;
  --control-paper: #fff;
  --control-ink: #22262b;
  --control-muted: #666c75;
  --control-line: #dfe2e6;
  --control-soft: #f3f4f5;
  --control-hover: #eceef1;
  --control-pressed: #e1e4e8;
  --control-focus: #606872;
  --control-danger: #a93630;
  --control-danger-soft: #fff4f3;
}

.forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button, .sidebar-link, .sidebar-product) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: var(--control-height);
  min-height: var(--control-height);
  width: fit-content;
  height: auto;
  padding: calc((var(--control-height) - var(--control-line-height) - 2px) / 2) 11px;
  border: 1px solid var(--control-line);
  border-radius: var(--control-radius);
  background: var(--control-paper);
  color: var(--control-ink);
  font-family: var(--font-sans);
  font-size: var(--control-font-size);
  font-weight: 500;
  line-height: var(--control-line-height);
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  box-shadow: none;
  transform: none;
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
  cursor: pointer;
}

.forum-site .button:where(:not(.secondary):not(.danger)) { background: var(--control-soft); }
.forum-site :is(.text-button, .icon-button, .editor-tool, .sidebar-link, .sidebar-product) {
  border-color: transparent;
  background: transparent;
}
.forum-site :is(.text-button, .editor-tool) { padding-inline: 7px; }
.forum-site :is(.icon-button, .pagination-button) {
  width: var(--control-height);
  height: var(--control-height);
  padding: 0;
  flex: 0 0 auto;
}
.forum-site .pagination-button[aria-label] { border-color: transparent; }
.forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button, .sidebar-link, .sidebar-product):hover:where(:not(:disabled)) {
  background: var(--control-hover);
  border-color: var(--control-line);
  color: var(--control-ink);
  box-shadow: none;
  transform: none;
  text-decoration: none;
}
.forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button):active:not(:disabled),
.forum-site .editor-tool[aria-pressed="true"],
.forum-site .text-button[aria-pressed="true"],
.forum-site .text-button[aria-current="page"],
.forum-site .pagination-button[aria-current="page"] {
  background: var(--control-pressed);
  border-color: var(--control-focus);
  color: var(--control-ink);
}
.forum-site :is(.button, .text-button, .icon-button).danger { color: var(--control-danger); }
.forum-site :is(.button, .text-button, .icon-button).danger:hover:not(:disabled) {
  background: var(--control-danger-soft);
  color: var(--control-danger);
}
.forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button):disabled {
  opacity: .45;
  cursor: default;
}
.forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button, .sidebar-link, .sidebar-product) .ui-icon {
  width: var(--control-icon-size);
  height: var(--control-icon-size);
  flex: 0 0 auto;
}

.forum-site :is(input:where(:not([type="checkbox"]):not([type="hidden"])), select, textarea) {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: var(--control-height);
  padding: calc((var(--control-height) - var(--control-line-height) - 2px) / 2) 9px;
  border: 1px solid var(--control-line);
  border-radius: var(--control-radius);
  background: var(--control-paper);
  color: var(--control-ink);
  font-family: var(--font-sans);
  font-size: var(--control-font-size);
  font-weight: 400;
  line-height: var(--control-line-height);
}
.forum-site :is(input:where(:not([type="checkbox"]):not([type="hidden"])), select) {
  height: var(--control-height);
}
.forum-site :is(input, textarea)::placeholder { color: var(--control-muted); opacity: 1; }
.forum-site textarea { resize: vertical; }
.forum-site :focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: -2px;
}
.forum-site :is(input, textarea, select, [contenteditable="true"]):focus {
  border-color: var(--control-focus);
  outline: 2px solid var(--control-focus);
  outline-offset: -2px;
}
.forum-site .checkbox-label { min-height: var(--control-height); }
.forum-site .checkbox-label input { width: 16px; height: 16px; accent-color: var(--control-focus); }

/* The login button spans the two standard input rows. */
.forum-site .sidebar-login-form input { margin: 0; border-radius: 0; }
.forum-site .sidebar-login-form input[name="login_id"] { border-top-left-radius: var(--control-radius); }
.forum-site .sidebar-login-form input[name="password"] { border-top: 0; border-bottom-left-radius: var(--control-radius); }
.forum-site .sidebar-login-grid > .button {
  width: 100%;
  height: 100%;
  min-width: 0;
  padding: 0 6px;
  border-left: 0;
  border-radius: 0 var(--control-radius) var(--control-radius) 0;
}
.forum-site .account-actions { gap: 8px; }
.forum-site .account-actions .text-button { padding-inline: 6px; }
.forum-site .sidebar-link {
  width: 100%;
  justify-content: flex-start;
  align-items: flex-start;
  border-color: transparent;
  border-radius: 0;
  padding-inline: 5px;
  text-align: left;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.forum-site .sidebar-link.active {
  padding-left: 4px;
  border-left: 2px solid var(--control-ink);
  background: var(--control-soft);
  color: var(--control-ink);
  font-weight: 500;
}
.forum-site .tree-marker { height: var(--control-line-height); }
.forum-site .sidebar-product {
  width: 100%;
  justify-content: space-between;
  margin-top: 0;
  border-block-color: var(--control-line);
  border-radius: 0;
  padding-inline: 5px;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: .045em;
}
.forum-site .sidebar-product:hover {
  border-block-color: var(--control-line);
  border-inline-color: transparent;
}
.forum-site :is(.sidebar-toggle, .sidebar-close) { display: none; }

.forum-site .account-form > .button { margin-top: 16px; align-self: flex-start; }
.forum-site .form-actions { justify-content: flex-end; gap: 8px; }
.forum-site :is(.category-dialog, .confirm-dialog, .link-dialog, .rich-editor, .recovery-code) {
  border-color: var(--control-line);
  border-radius: var(--control-radius);
}
.forum-site :is(.category-dialog, .confirm-dialog, .link-dialog) { background: var(--control-paper); }
.forum-site :is(.editor-toolbar, .recovery-code) { background: var(--control-soft); }
.forum-site .editor-toolbar { gap: 4px; padding: 6px; border-bottom-color: var(--control-line); }
.forum-site .text-link {
  min-height: var(--control-height);
  gap: 6px;
  color: var(--control-ink);
  font-size: var(--control-font-size);
  font-weight: 500;
  line-height: var(--control-line-height);
}
.forum-site .skip-link {
  min-height: var(--control-height);
  padding: 5px 11px;
  border: 1px solid var(--control-line);
  border-radius: var(--control-radius);
  background: var(--control-soft);
  color: var(--control-ink);
  font-size: var(--control-font-size);
  font-weight: 500;
  box-shadow: none;
}

@media (max-width: 760px) {
  .js-ready .forum-site .sidebar-toggle {
    display: inline-flex;
    background: var(--control-paper);
  }
  .forum-site .sidebar-close { display: inline-flex; }
}

@media (pointer: coarse) {
  .forum-site { --control-height: 44px; }
  .forum-site :is(input:where(:not([type="checkbox"]):not([type="hidden"])), select, textarea) { font-size: 16px; }
  .forum-site :is(.sidebar-account-links, .account-links) a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .forum-site :is(.button, .text-button, .icon-button, .editor-tool, .pagination-button, .sidebar-link, .sidebar-product) { transition: none; }
}
