/* Viewer element + utility styles. Tokens, fonts and base element styles (html, body, headings, p, fluid root
   font size) come from @scutoons/tokens, imported in routes/+layout.svelte. */

img {
  display: block;
  margin: 0;
}

.logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* One control height (owner 2026-10-02, agents/DESIGN.md "One control height"): every single-line control – button,
   .btn link, select, text-like input – is exactly --control-height (2rem + the 2px frame; ≥ 44px on touch), the same
   2px frame, no vertical padding, the label centred. Textareas grow. */
input, select, textarea {
  width: 100%;
  padding: 0 1rem;
  border: var(--border-width-regular) solid var(--border-muted);
  border-radius: 0;
  font-family: var(--font-mono);
  font-size: 1rem;
  margin: 1rem 0;
  box-sizing: border-box;
}

input:not([type='checkbox'], [type='radio'], [type='range'], [type='color'], [type='file'], [type='hidden']),
select:not([multiple], [size]) {
  height: var(--control-height);
}

textarea {
  padding: 0.5rem 1rem; /* control-ok: multi-line, exempt */
}

button,
.btn {
  background-color: var(--ink);
  color: var(--paper);
  box-sizing: border-box;
  min-height: var(--control-height);
  padding: 0 3rem;
  border: none;
	text-align: center;
  border-radius: 0;
  font-family: var(--font-mono);
  font-size: 1rem;
  line-height: var(--type-button-line);
  cursor: pointer;
}

/* a link or label that is a button: the box centres its one line like a <button> does */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

button:hover,
.btn:hover {
  background-color: var(--ink);
}

button.btn-secondary,
.btn.btn-secondary {
	background: transparent;
	color: var(--ink);
	border: 2px solid var(--border-muted);
}

button.btn-secondary:hover,
.btn.btn-secondary:hover {
	background: transparent;
	border-color: var(--ink);
}

button.btn-clear {
	padding: 0;
	margin: 0;
	background: transparent;
}
.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.loading {
  height: calc(100dvh - 5rem);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.releases {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.view {
  max-width: 800px;
  margin: 0 auto;
}

.view table {
  width: 100%;
  border-collapse: collapse;
}

.view table td {
  padding: 0.5rem;
  border: 1px solid #ccc;
}

.view table td:first-child {
  background: #f0f0f0;
  min-width: 33%;
}

/* The toon page's desktop hero (toon/hero.svelte sets html.on-hero while it is under the fixed top bar): the logo and
   the round icon toggles turn white over the dark video, back to ink below it. */
html.on-hero .logo-link img {
  filter: invert(1);
}
html.on-hero :is(.menu-toggle, .sequence-navigation-toggle, .map-toggle, .inventory-toggle) {
  background: transparent;
  border-color: var(--paper);
}
html.on-hero :is(.menu-toggle, .sequence-navigation-toggle, .map-toggle, .inventory-toggle):hover {
  background: rgb(255 255 255 / 0.15);
}
html.on-hero :is(.menu-toggle, .sequence-navigation-toggle, .map-toggle, .inventory-toggle) img {
  filter: invert(1);
}
