/* pab.stellarbricks.com — one hand-written stylesheet, no build step, like
   the news site's (the box has no node). */
:root {
  color-scheme: light dark;
  --bg: #fafaf7; --fg: #1b1b1f; --muted: #5d5d66; --line: #e3e2dc;
  --card: #ffffff; --accent: #006cb7; --accent-fg: #ffffff; --warn: #9a5b00; --bad: #b3261e;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #121214; --fg: #ececf0; --muted: #a0a0ab; --line: #2a2a30;
          --card: #1b1b1f; --accent: #4aa3ff; --accent-fg: #121214; --warn: #f0b85a; --bad: #ff8a80; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg);
       font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: inherit; }
main, .top, .foot { max-width: 62rem; margin: 0 auto; padding: 0 16px; }
.top { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1.5rem;
       padding-top: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.brand { font-weight: 800; font-size: 1.2rem; text-decoration: none; }
.top nav { margin-left: auto; display: flex; gap: 1rem; font-size: .95rem; }
.top nav a { color: var(--muted); text-decoration: none; }
.top nav a[aria-current] { color: var(--fg); font-weight: 700; }
h1 { font-size: 1.8rem; line-height: 1.2; margin: 1.8rem 0 .4rem; }
h2 { font-size: 1.25rem; margin: 2rem 0 .6rem; }
.lead, .muted { color: var(--muted); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: .6rem;
        padding: 1rem 1.2rem; margin: 1rem 0; }
label { display: block; font-weight: 600; margin: .8rem 0 .3rem; }
input[type=file], textarea, input[type=number] { font: inherit; color: inherit; background: var(--bg);
        border: 1px solid var(--line); border-radius: .4rem; padding: .5rem; max-width: 100%; }
textarea { width: 100%; min-height: 9rem; font-family: ui-monospace, Consolas, monospace; }
input[type=number] { width: 9rem; }
.btn { display: inline-block; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none;
       border: 1px solid var(--line); background: var(--card); color: var(--fg);
       border-radius: .45rem; padding: .5rem 1rem; }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-fg); }
.btn.sm { padding: .25rem .6rem; font-size: .9rem; }
.steps { padding-left: 1.3rem; }
.steps li { margin: .35rem 0; }
.metrics { display: flex; flex-wrap: wrap; gap: .6rem 2rem; margin: .8rem 0; }
.metrics b { display: block; font-size: 1.35rem; }
.metrics span { color: var(--muted); font-size: .9rem; }
.tablewrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .93rem; }
th, td { text-align: left; padding: .35rem .5rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td img { width: 40px; height: 40px; object-fit: contain; display: block; }
.order { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.order h3 { margin: 0; font-size: 1.05rem; }
.order form { margin-left: auto; }
.warn { color: var(--warn); }
.bad { color: var(--bad); }
.disclosure { font-size: .9rem; color: var(--muted); }
details summary { cursor: pointer; font-weight: 600; }
.foot { color: var(--muted); font-size: .85rem; padding-top: 2rem; padding-bottom: 2rem;
        border-top: 1px solid var(--line); margin-top: 3rem; }

/* the browse page */
.top nav .sep { width: 1px; background: var(--line); align-self: stretch; }
.filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .4rem 1rem; align-items: end; }
.filters label { margin: 0 0 .25rem; font-size: .9rem; }
.filters .f-q { grid-column: 1 / -1; }
.filters input, .filters select { font: inherit; color: inherit; background: var(--bg); width: 100%;
        border: 1px solid var(--line); border-radius: .4rem; padding: .45rem; }
.filters .f-price span { display: flex; gap: .3rem; align-items: center; }
.filters .f-price input { width: 100%; min-width: 0; }
.filters .f-go { display: flex; gap: .5rem; }
table.browse td { font-size: .9rem; }
.small { font-size: .8rem; }
.ok { color: #2e7d32; }
@media (prefers-color-scheme: dark) { .ok { color: #81c784; } }
.pager { display: flex; gap: 1rem; align-items: center; justify-content: center; margin: 1rem 0; }
@media (max-width: 640px) { .hide-sm { display: none; } }

/* the list */
form.add { display: flex; gap: .3rem; align-items: center; flex-wrap: wrap; margin: 0; }
form.add input[type=number] { width: 5.5rem; padding: .25rem .4rem; }

/* the language menu: <details>, no script (like the news site's) */
.langmenu { position: relative; }
.langmenu summary { list-style: none; cursor: pointer; color: var(--muted); user-select: none; }
.langmenu summary::-webkit-details-marker { display: none; }
.langmenu[open] summary, .langmenu summary:hover { color: var(--fg); }
.langlist { position: absolute; right: 0; top: calc(100% + .5rem); z-index: 10; display: grid;
            grid-template-columns: repeat(2, max-content); gap: .15rem 1.2rem; padding: .7rem 1rem;
            background: var(--card); border: 1px solid var(--line); border-radius: .6rem;
            box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.langlist a { white-space: nowrap; padding: .15rem 0; }
.langlist a[aria-current] { color: var(--fg); font-weight: 700; }
.top nav { flex-wrap: wrap; align-items: baseline; }

/* the catalogue grouped by design: a header row, its colours under it */
table.grouped tbody.design { border-top: 2px solid var(--line); }
table.grouped tr.grp td { padding-top: .7rem; border-bottom: none; }
table.grouped tr.grp img { width: 48px; height: 48px; }
table.grouped tr.clr td { padding-top: .2rem; padding-bottom: .2rem; }
table.grouped tr.clr td:first-child { padding-left: 1.2rem; }
table.grouped tr.clr img { width: 32px; height: 32px; }
