/* Wikipedia Vector-inspired skin for Shiptastic Wiki */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --wiki-bg: #f8f9fa;
  --wiki-content-bg: #ffffff;
  --wiki-text: #202122;
  --wiki-muted: #54595d;
  --wiki-link: #0645ad;
  --wiki-link-visited: #0b0080;
  --wiki-link-red: #ba0000;
  --wiki-border: #a2a9b1;
  --wiki-accent: #3366cc;
  --wiki-sidebar-bg: #f8f9fa;
  --wiki-infobox-bg: #f8f9fa;
  --wiki-toc-bg: #f8f9fa;
  --wiki-font-body: "Linux Libertine", Georgia, "Times New Roman", Times, serif;
  --wiki-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--wiki-font-body);
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--wiki-text);
  background: var(--wiki-bg);
}

a { color: var(--wiki-link); text-decoration: none; }
a:visited { color: var(--wiki-link-visited); }
a:hover { text-decoration: underline; }
a.new { color: var(--wiki-link-red); }

/* Site chrome (Shiptastic nav) */
.site-chrome {
  font-family: var(--wiki-font-sans);
  background: #202122;
  color: #fff;
  padding: 0.5rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.8rem;
}

.site-chrome a {
  color: #fff;
  text-decoration: none;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
}

.site-chrome a:hover { background: rgba(255,255,255,0.1); text-decoration: none; }
.site-chrome a.active { background: var(--wiki-accent); }
.site-chrome .brand { font-weight: 600; }

/* Wikipedia header */
.wiki-header {
  font-family: var(--wiki-font-sans);
  background: var(--wiki-content-bg);
  border-bottom: 1px solid var(--wiki-border);
  padding: 0.5rem 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.wiki-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--wiki-text);
}

.wiki-logo:hover { text-decoration: none; }

.wiki-logo-icon {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #3366cc, #2a4b8d);
  border-radius: 4px;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
}

.wiki-logo-text {
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.2;
}

.wiki-logo-text small {
  display: block;
  font-size: 0.7rem;
  color: var(--wiki-muted);
}

.wiki-search {
  flex: 1;
  max-width: 400px;
  min-width: 180px;
}

.wiki-search input {
  width: 100%;
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--wiki-border);
  border-radius: 2px;
  font: inherit;
  font-size: 0.85rem;
}

/* Layout */
.wiki-layout {
  display: flex;
  max-width: 1600px;
  margin: 0 auto;
}

.wiki-sidebar {
  font-family: var(--wiki-font-sans);
  width: 176px;
  flex-shrink: 0;
  padding: 1rem 0.75rem;
  font-size: 0.75rem;
  background: var(--wiki-sidebar-bg);
  border-right: 1px solid var(--wiki-border);
  position: sticky;
  top: 0;
  align-self: flex-start;
  max-height: 100vh;
  overflow-y: auto;
}

.wiki-sidebar h3 {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--wiki-muted);
  margin: 1rem 0 0.4rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid var(--wiki-border);
}

.wiki-sidebar h3:first-child { margin-top: 0; }

.wiki-sidebar ul { list-style: none; }

.wiki-sidebar li { margin: 0.15rem 0; }

.wiki-sidebar a { font-size: 0.75rem; }

.wiki-main {
  flex: 1;
  min-width: 0;
  background: var(--wiki-content-bg);
  padding: 1.5rem 2rem 3rem;
}

/* Article header */
.mw-indicators { float: right; }

.mw-heading h1 {
  font-family: var(--wiki-font-sans);
  font-size: 1.8rem;
  font-weight: 400;
  border-bottom: 1px solid var(--wiki-border);
  padding-bottom: 0.25rem;
  margin-bottom: 0.5rem;
}

.mw-tagline {
  font-family: var(--wiki-font-sans);
  font-size: 0.8rem;
  color: var(--wiki-muted);
  margin-bottom: 1rem;
}

.mw-jumplinks {
  font-family: var(--wiki-font-sans);
  font-size: 0.75rem;
  margin-bottom: 1rem;
}

.mw-jumplinks a { margin-right: 1rem; }

/* Infobox */
.infobox {
  font-family: var(--wiki-font-sans);
  float: right;
  clear: right;
  width: 22em;
  margin: 0 0 1em 1em;
  border: 1px solid var(--wiki-border);
  border-spacing: 0;
  background: var(--wiki-infobox-bg);
  font-size: 0.8rem;
  line-height: 1.4;
}

.infobox caption {
  font-size: 1rem;
  font-weight: 600;
  padding: 0.4em;
  background: var(--wiki-accent);
  color: #fff;
}

.infobox th {
  text-align: left;
  vertical-align: top;
  padding: 0.3em 0.5em;
  background: #eaecf0;
  font-weight: 600;
}

.infobox td {
  padding: 0.3em 0.5em;
  vertical-align: top;
}

.infobox-image {
  text-align: center;
  padding: 0.5em;
  background: #fff;
}

.infobox-image img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--wiki-border);
}

.infobox-image .caption {
  font-size: 0.75rem;
  color: var(--wiki-muted);
  margin-top: 0.3em;
}

/* Table of contents */
.toc {
  font-family: var(--wiki-font-sans);
  display: table;
  background: var(--wiki-toc-bg);
  border: 1px solid var(--wiki-border);
  padding: 0.75rem 1rem;
  margin: 1rem 0 1.5rem;
  font-size: 0.85rem;
  min-width: 200px;
}

.toc-title {
  font-weight: 700;
  text-align: center;
  margin-bottom: 0.5rem;
}

.toc ul { list-style: none; margin-left: 0; }
.toc > ul > li { margin: 0.2rem 0; }
.toc ul ul { margin-left: 1.5rem; }

/* Content */
.mw-content p { margin: 0.5em 0; }

.mw-content h2 {
  font-family: var(--wiki-font-sans);
  font-size: 1.5rem;
  font-weight: 400;
  border-bottom: 1px solid var(--wiki-border);
  margin: 1.5em 0 0.5em;
  padding-bottom: 0.2em;
  clear: both;
}

.mw-content h3 {
  font-family: var(--wiki-font-sans);
  font-size: 1.2rem;
  font-weight: 600;
  margin: 1em 0 0.4em;
}

.mw-content ul, .mw-content ol {
  margin: 0.3em 0 0.3em 1.6em;
}

.mw-content li { margin: 0.15em 0; }

.mw-content blockquote {
  border-left: 4px solid var(--wiki-border);
  margin: 1em 0;
  padding: 0.5em 1em;
  color: var(--wiki-muted);
  font-style: italic;
}

/* Category grid (main page style) */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
}

.category-card {
  font-family: var(--wiki-font-sans);
  border: 1px solid var(--wiki-border);
  padding: 0.75rem;
  background: var(--wiki-bg);
  border-radius: 2px;
  transition: background 0.15s;
}

.category-card:hover { background: #eaecf0; }

.category-card a {
  font-weight: 600;
  display: block;
  margin-bottom: 0.3rem;
}

.category-card p {
  font-size: 0.8rem;
  color: var(--wiki-muted);
  margin: 0;
}

/* References */
.references {
  font-family: var(--wiki-font-sans);
  font-size: 0.8rem;
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--wiki-border);
}

.references ol { margin-left: 2em; }
.references li { margin: 0.3em 0; }

/* Categories footer */
.catlinks {
  font-family: var(--wiki-font-sans);
  margin-top: 1.5rem;
  padding: 0.5rem;
  background: var(--wiki-bg);
  border: 1px solid var(--wiki-border);
  font-size: 0.8rem;
}

.catlinks ul {
  display: inline;
  list-style: none;
  margin: 0;
  padding: 0;
}

.catlinks li { display: inline; }
.catlinks li::after { content: " | "; color: var(--wiki-muted); }
.catlinks li:last-child::after { content: ""; }

/* Footer */
.wiki-footer {
  font-family: var(--wiki-font-sans);
  clear: both;
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--wiki-border);
  font-size: 0.75rem;
  color: var(--wiki-muted);
}

.ambox {
  font-family: var(--wiki-font-sans);
  border: 1px solid #f28500;
  border-left: 10px solid #f28500;
  background: #fef6e7;
  margin: 1rem 0;
  padding: 0.5rem 0.75rem;
  font-size: 0.85rem;
}

.ambox strong { color: #a66200; }

@media (max-width: 900px) {
  .wiki-sidebar { display: none; }
  .infobox { float: none; width: 100%; margin: 0 0 1em; }
  .wiki-main { padding: 1rem; }
}

/* Page tabs (Article / Edit / History) */
.wiki-tabs {
  font-family: var(--wiki-font-sans);
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid var(--wiki-border);
  margin: 0 0 1.25rem;
}

.wiki-tab {
  display: inline-block;
  padding: 0.55rem 1rem;
  margin-bottom: -1px;
  border: 1px solid transparent;
  border-bottom: none;
  color: var(--wiki-link);
  font-size: 0.85rem;
  text-decoration: none;
  background: var(--wiki-bg);
  border-radius: 3px 3px 0 0;
}

.wiki-tab:hover {
  background: #eaecf0;
  text-decoration: none;
}

.wiki-tab.active {
  background: var(--wiki-content-bg);
  border-color: var(--wiki-border);
  color: var(--wiki-text);
  font-weight: 600;
}

/* Edit interface */
.edit-title {
  font-family: var(--wiki-font-sans);
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 0.75rem;
}

.edit-title span { font-weight: 600; }

.edit-notice, .source-note {
  font-family: var(--wiki-font-sans);
  font-size: 0.85rem;
  color: var(--wiki-muted);
  background: #eaf3ff;
  border: 1px solid #a3c4ff;
  padding: 0.6rem 0.85rem;
  margin-bottom: 1rem;
  border-radius: 2px;
}

.edit-form { font-family: var(--wiki-font-sans); }

.edit-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.35rem;
  padding: 0.35rem;
  background: var(--wiki-bg);
  border: 1px solid var(--wiki-border);
  border-bottom: none;
}

.edit-toolbar button {
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid var(--wiki-border);
  background: #fff;
  border-radius: 2px;
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 600;
}

.edit-toolbar button:hover { background: #eaecf0; }

#wikitext-editor,
.source-view {
  width: 100%;
  font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;
  font-size: 0.8rem;
  line-height: 1.45;
  padding: 0.75rem;
  border: 1px solid var(--wiki-border);
  border-radius: 0 0 2px 2px;
  resize: vertical;
  tab-size: 4;
}

.edit-meta {
  margin: 0.85rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.edit-meta input[type="text"] {
  display: block;
  width: 100%;
  margin-top: 0.25rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--wiki-border);
  font: inherit;
}

.edit-check {
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.75rem;
}

.btn-primary,
.btn-secondary,
.btn-danger,
.btn-link {
  font-family: var(--wiki-font-sans);
  font-size: 0.85rem;
  padding: 0.45rem 1rem;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  border: 1px solid var(--wiki-border);
  background: #fff;
  color: var(--wiki-text);
}

.btn-primary {
  background: var(--wiki-accent);
  border-color: #2a4b8d;
  color: #fff;
  font-weight: 600;
}

.btn-primary:hover { background: #2a4b8d; color: #fff; text-decoration: none; }

.btn-secondary:hover { background: #eaecf0; text-decoration: none; }

.btn-danger {
  background: #fee7e7;
  border-color: #d33;
  color: #900;
}

.btn-link {
  border: none;
  background: none;
  color: var(--wiki-link);
  padding: 0.45rem 0.5rem;
}

.btn-link:hover { text-decoration: underline; }

.edit-preview {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 2px solid var(--wiki-border);
}

.edit-preview.hidden { display: none; }

.edit-preview h2 {
  font-family: var(--wiki-font-sans);
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}

/* History table */
.history-table {
  width: 100%;
  font-family: var(--wiki-font-sans);
  font-size: 0.8rem;
  border-collapse: collapse;
  margin-bottom: 1rem;
}

.history-table th,
.history-table td {
  border: 1px solid var(--wiki-border);
  padding: 0.4rem 0.55rem;
  text-align: left;
  vertical-align: top;
}

.history-table th { background: #eaecf0; font-weight: 600; }

.history-table tr:nth-child(even) { background: #f8f9fa; }

.empty-history { text-align: center; color: var(--wiki-muted); padding: 1.5rem !important; }

/* Diff view */
.diff-table {
  width: 100%;
  font-family: ui-monospace, monospace;
  font-size: 0.75rem;
  border-collapse: collapse;
  margin: 1rem 0;
}

.diff-table td {
  padding: 0.15rem 0.4rem;
  vertical-align: top;
  border: 1px solid #eaecf0;
  white-space: pre-wrap;
  word-break: break-word;
}

.diff-ln {
  width: 1.5rem;
  text-align: center;
  color: var(--wiki-muted);
  background: #f8f9fa;
  user-select: none;
}

.diff-old { width: 45%; background: #fff; }
.diff-new { width: 45%; background: #fff; }

.diff-add .diff-new { background: #d8fcd8; }
.diff-del .diff-old { background: #ffe9e9; }
.diff-chg .diff-old { background: #ffe9e9; }
.diff-chg .diff-new { background: #d8fcd8; }

/* Create page form */
#create-form label {
  display: block;
  font-family: var(--wiki-font-sans);
  margin-bottom: 1rem;
}

#create-form input[type="text"] {
  display: block;
  width: 100%;
  max-width: 400px;
  margin-top: 0.35rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--wiki-border);
  font: inherit;
}

.wiki-loading {
  font-family: var(--wiki-font-sans);
  color: var(--wiki-muted);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.wiki-help {
  max-width: 900px;
  margin: 0 auto 2rem;
  padding: 1rem 1.5rem;
  font-family: var(--wiki-font-sans);
  font-size: 0.8rem;
  background: #fff;
  border-top: 1px solid var(--wiki-border);
}

.wiki-help pre {
  background: var(--wiki-bg);
  padding: 0.75rem;
  border: 1px solid var(--wiki-border);
  overflow-x: auto;
}

@media (max-width: 600px) {
  .category-grid { grid-template-columns: 1fr; }
  .diff-old, .diff-new { font-size: 0.7rem; }
  .wiki-tabs { overflow-x: auto; flex-wrap: nowrap; }
}