/* EdilRobotics prototypes — shared base: self-hosted fonts, reset, palette, accessibility.
   Colour roles (same in every proposal):
   blue  #3E5BFF  brand and interaction (links, buttons, focus, selection)
   lime  #C8F04A  live status: "Available"
   violet #7B5CFF geography and network (countries, routes)
   coral #FF6A4A  people and requests ("Request a robot", limited availability) */
@font-face { font-family: 'Inter'; src: url('../fonts/Inter-var.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Bricolage'; src: url('../fonts/Bricolage-opsz-var.woff2') format('woff2'); font-weight: 200 800; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('../fonts/Archivo-wdth-var.woff2') format('woff2'); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; }
@font-face { font-family: 'Plex Mono'; src: url('../fonts/IBMPlexMono-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Plex Mono'; src: url('../fonts/IBMPlexMono-500.woff2') format('woff2'); font-weight: 500; font-display: swap; }

:root {
  --blue: #3E5BFF; --blue-deep: #2236C9; --blue-ink: #16207A;
  --lime: #C8F04A; --violet: #7B5CFF; --coral: #FF6A4A;
  --ink: #0A0E1C; --mono: 'Plex Mono', ui-monospace, monospace;
  --ease: cubic-bezier(.16, 1, .3, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-variant-numeric: tabular-nums; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--lime); color: var(--ink); }
.glyph { width: 100%; height: 100%; overflow: visible; }
.glyph .g { stroke-width: 1; opacity: .45; }
.glyph .d { stroke-dasharray: 2 3; }

/* search combobox (layout per page) */
[data-search] { position: relative; }
[data-search] [role="listbox"] { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 8px); margin: 0; padding: 6px; border-radius: 16px; max-height: 420px; overflow: auto; }
[data-search] [role="option"] { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 10px; cursor: pointer; }
[data-search] [role="option"] .opt-g { width: 34px; height: 34px; flex: none; }
[data-search] [role="option"] span { display: grid; line-height: 1.25; }
[data-search] [role="option"] small { font-size: 12.5px; opacity: .7; }
[data-search] .opt-all { font-weight: 600; justify-content: center; }
[data-search] .opt-empty { cursor: default; font-size: 14px; }

/* planet country tags (positioned by planet.js) */
.ert-planet-gl { position: absolute; inset: 0; }
.ert-ctags { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.ert-ctag { position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; text-decoration: none; opacity: 0; transition: opacity .3s; font-size: 12.5px; }
.ert-ctag i { width: 6px; height: 6px; border-radius: 50%; margin-left: -3px; }
.ert-ctag b { font-family: var(--mono); font-weight: 500; font-size: 11px; }

.btn { white-space: nowrap; }
@media (max-width: 400px) { header .btn, .top .btn { font-size: 13px !important; padding: 0 12px !important; height: 38px !important; } .brand { font-size: 17px !important; } }
.proto-flag { position: fixed; z-index: 99; right: 12px; bottom: 12px; font: 500 11px/1 var(--mono); padding: 7px 10px; border-radius: 99px; background: #0A0E1C; color: #fff; opacity: .82; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* a stray wide element (planet labels, third-party banners) must never create sideways scrolling */
html, body { overflow-x: clip; }
