/*
! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com
*/

/* =====================================================================
   CONTENTS
   1.  Tailwind reset (generated, left alone)
   2.  Base: page, links, headings, text helpers
   3.  Layout: header, main nav, content, side nav, footer
   4.  Tabs
   5.  Forms
   6.  Tables (base + tile tables)
   7.  Buttons, pills, boxes
   8.  Control panel (admin)
   9.  User slide-out panel
   10. Small utilities and legacy Nova classes
   11. Dropdown widgets (Chosen / Select2)
   12. Pages: front page, mission view, sim, manifest, write, mission info, stats
   ===================================================================== */


/* =====================================================================
   1. TAILWIND RESET
   ===================================================================== */

*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}

::before,
::after {
  --tw-content: '';
}

html,
:host {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
  font-family: Roboto;
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  text-decoration: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: Roboto;
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: Roboto;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button,
select {
  text-transform: none;
}

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring {
  outline: auto;
}

:-moz-ui-invalid {
  box-shadow: none;
}

progress {
  vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

summary {
  display: list-item;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

dialog {
  padding: 0;
}

textarea {
  resize: vertical;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}

button,
[role="button"] {
  cursor: pointer;
}

:disabled {
  cursor: default;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

img,
video {
  max-width: 100%;
  height: auto;
}

[hidden] {
  display: none;
}

/* Tailwind forms plugin */

[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  border-radius: 0px;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-shadow: 0 0 #0000;
}

[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  border-color: #2563eb;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #6b7280;
  opacity: 1;
}

input::placeholder,textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: inherit;
}

::-webkit-datetime-edit {
  display: inline-flex;
}

::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}

select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 2.5rem;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
}

[multiple],[size]:where(select:not([size="1"])) {
  background-image: initial;
  background-position: initial;
  background-repeat: unset;
  background-size: initial;
  padding-right: 0.75rem;
  -webkit-print-color-adjust: unset;
          print-color-adjust: unset;
}

[type='checkbox'],[type='radio'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
  display: inline-block;
  vertical-align: middle;
  background-origin: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  color: #2563eb;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  --tw-shadow: 0 0 #0000;
}

[type='checkbox'] {
  border-radius: 0px;
}

[type='radio'] {
  border-radius: 100%;
}

[type='checkbox']:focus,[type='radio']:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

[type='checkbox']:checked,[type='radio']:checked {
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

[type='checkbox']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  [type='checkbox']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='radio']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  [type='radio']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {
  border-color: transparent;
  background-color: currentColor;
}

[type='checkbox']:indeterminate {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

@media (forced-colors: active)  {

  [type='checkbox']:indeterminate {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {
  border-color: transparent;
  background-color: currentColor;
}

[type='file'] {
  background: unset;
  border-color: inherit;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-size: unset;
  line-height: inherit;
}

[type='file']:focus {
  outline: 1px solid ButtonText;
  outline: 1px auto -webkit-focus-ring-color;
}

/* Tailwind variable defaults (needed by the transform, ring and backdrop rules below) */

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}


/* =====================================================================
   2. BASE
   ===================================================================== */

:root { color-scheme: dark; }

html,
body {
  background-color: var(--bg);
  color: var(--text);
}

body {
  font-family: Roboto;
  font-size: 1rem;
  line-height: 1.5rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.wrapper {
  margin-left: auto;
  margin-right: auto;
  max-width: 80rem;
}

img { border-style: none; }
img.image { display: inline; }

/* links */
a {
  border-color: rgba(var(--primary-500), 1);
  color: rgba(var(--primary-600), 1);
  text-decoration-line: none;
}
a:hover {
  border-color: rgba(var(--primary-600), 1);
  color: var(--accent);
}
a:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
a.delete,
a.edit {
  border-style: none;
  color: rgb(107 114 128);
}
a.delete:hover { color: rgba(var(--danger-500), 1); }
a.edit:hover   { color: rgba(var(--info-500), 1); }
a.image {
  display: inline;
  border-style: none;
  text-decoration-line: none;
}
a.image:hover {
  border-style: none;
  text-decoration-line: none;
}

/* headings and text */
h1, h2, h3, h4, p { margin-bottom: 1rem; }

h1, h2, h3, .page-head {
  font-family: "Roboto Condensed", Roboto, sans-serif;
  font-variant: normal;
  text-transform: none;
}

h1 {
  font-size: 2rem;
  line-height: 2.5rem;
  font-weight: 800;
  letter-spacing: -0.025em;
}
h2 {
  font-size: 1.3rem;
  line-height: 2.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
h3 {
  font-size: 1.3rem;
  line-height: 2rem;
  font-weight: 600;
  color: var(--text);
}
h4 {
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
p {
  font-size: 1rem;
  line-height: 1.5rem;
}
strong { font-weight: 600; }
em { font-style: italic; }

.page-head {
  font-size: 2rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--text);
}
.page-subhead { color: var(--accent); }

hr {
  margin: 0.375rem auto;
  height: 0px;
  width: 100%;
  border-top-width: 1px;
  border-color: var(--border);
}

/* text helpers */
.line_height_13 { line-height: 1.375; }
.line_height_18 { line-height: 2; }
.fontLarge  { font-size: 1.25rem;  line-height: 1.75rem; }
.fontMedium { font-size: 1.125rem; line-height: 1.75rem; }
.fontNormal { font-size: 1rem;     line-height: 1.5rem; }
.fontSmall  { font-size: 0.875rem; line-height: 1.25rem; }
.fontTiny   { font-size: 0.75rem;  line-height: 1rem; }
.nobold { font-weight: 400; }
.bold   { font-weight: 600; }
.align_right { text-align: right; }
.italic    { font-style: italic; }
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.hidden    { display: none; }

.gray   { color: var(--muted); }
.red    { color: rgba(var(--danger-500), 1); }
.orange { color: rgba(var(--warning-600), 1); }
.green  { color: rgba(var(--success-500), 1); }
.blue   { color: rgba(var(--info-500), 1); }
.text-primary-600 { color: rgba(var(--primary-600), 1); }

.alt { background-color: var(--surface); }

/* clearing, floats, spacing */
.clear_both  { clear: both; }
.clear_right { clear: right; }
.clear_left  { clear: left; }
.float_left  { float: left; }
.float_right { float: right; }
.top_p5em   { padding-top: 0.5rem; }
.top_1em    { padding-top: 1rem; }
.right_p5em { padding-right: 0.5rem; }
.right_1em  { padding-right: 1rem; }
.left_p5em  { padding-left: 0.5rem; }
.left_1em   { padding-left: 1rem; }
.padding_all_p5em { padding: 0.5rem; }


/* =====================================================================
   3. LAYOUT
   ===================================================================== */

/* header: flat bar */
header {
  position: relative;
  margin: 0 0 1.5rem;
  padding-top: 0;
  border-bottom: 1px solid var(--border);
}
header > .wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem 1.25rem;
}
header .nav-main {
  display: flex;
  flex: 1;
  justify-content: center;
}
header .signin-container {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
}
header .signin-container > :not([hidden]) ~ :not([hidden]) { margin-left: 1.5rem; }

header .logo svg,
header .logo img {
  height: 2rem;
  width: auto;
}
header .logo img { filter: var(--logo-filter); }

header .signin-container .signin {
  border-radius: 0.375rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  background-color: var(--cta);
  color: var(--on-cta);
}
header .signin-container .signin:hover { background-color: var(--accent); }

header .signin-container .logged-in-controls {
  display: flex;
  align-items: center;
  padding: 13px;
}
header .signin-container .logged-in-controls > :not([hidden]) ~ :not([hidden]) { margin-left: 1rem; }
header .signin-container .logged-in-controls span {
  display: flex;
  align-items: center;
}
header .signin-container .logged-in-controls span > :not([hidden]) ~ :not([hidden]) { margin-left: 0.375rem; }
header .signin-container .logged-in-controls img.icon {
  height: 1.5rem;
  width: 1.5rem;
  filter: invert(1);
}
header .signin-container .logged-in-controls a { border-style: none; }

/* main nav: pills */
.nav-main { display: flex; }
.nav-main ul {
  margin: 4px;
  padding: 0;
  display: flex;
  width: auto;
  align-items: center;
}
.nav-main ul > :not([hidden]) ~ :not([hidden]) { margin-left: 0.8rem; }
.nav-main ul li a {
  display: block;
  padding: 0.375rem 0.875rem;
  border-radius: 9999px;
  font-family: "Roboto Condensed", Roboto, sans-serif;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: bold;
  font-variant: normal;
  text-transform: none;
  text-decoration-line: none;
  color: var(--accent);
}
.nav-main ul li a:hover,
.nav-main ul li a.active {
  color: var(--text);
  background: var(--surface);
}
.nav-main ul li a[href$="login/index"]       { background: var(--cta); color: var(--on-cta); }
.nav-main ul li a[href$="login/index"]:hover { background: var(--accent); color: var(--on-cta); }

/* content area */
main {
  position: relative;
  margin-bottom: 3rem;
  overflow: hidden;
  border-radius: 0.375rem;
  background-color: transparent;
}
main .content {
  margin-right: 12rem;
  padding: 1.5rem;
  background-color: transparent;
}

/* side nav */
.nav-sub {
  float: right;
  width: 12rem;
  text-align: right;
}
.nav-sub ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.nav-sub ul > :not([hidden]) ~ :not([hidden]) { margin-top: 0.125rem; }
.nav-sub ul > li {
  margin: 0;
  padding: 0;
}
.nav-sub ul > li > a {
  display: block;
  border-color: transparent;
  padding: 0.25rem 1rem;
  font-size: 1rem;
  line-height: 1.25rem;
  font-weight: 600;
  font-variant: normal;
  color: var(--accent);
}
.nav-sub ul > li > a:hover { color: var(--cta); }
.nav-sub ul > li.spacer {
  height: 1.5rem;
  border-style: none;
}
.nav-sub ul > li.menu_category {
  padding: 0.25rem 1rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--purple);
}

/* footer */
footer {
  clear: both;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 0;
  border-width: 2px;
  border-color: var(--border);
  border-radius: 0.375rem;
  background: var(--surface);
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--accent);
}
footer > :not([hidden]) ~ :not([hidden]) { margin-left: 2rem; }

/* login panel (legacy) */
.signin-active,
.signin-active:hover {
  background: var(--grey-green) !important;
  color: #fff;
}
.signin-panel {
  float: right;
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgba(var(--primary-700), 1);
}
.signin-panel kbd {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  color: rgba(var(--primary-600), 1);
}
.signin-panel input[type=text],
.signin-panel input[type=password] {
  width: 12rem;
  border-radius: 0.375rem;
  border-width: 1px;
  border-color: var(--border);
  background-color: var(--surface);
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  color: var(--text);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .5);
}
.signin-panel input[type=text]:focus,
.signin-panel input[type=password]:focus {
  border-color: rgba(var(--primary-500), 1);
  background-color: var(--bg);
}
.signin-panel a {
  border: 0;
  color: var(--grey-green) !important;
}
.signin-panel a:hover { border-bottom: 1px solid; }


/* =====================================================================
   4. TABS (jQuery UI)
   ===================================================================== */

.ui-tabs {
  position: relative;
  zoom: 1;
}
.ui-tabs .ui-tabs-nav {
  margin: 0;
  padding: 0;
  display: flex;
  font-weight: bold;
  text-transform: capitalize;
  border-bottom-width: 2px;
  border-color: var(--border);
}
.ui-tabs .ui-tabs-nav > :not([hidden]) ~ :not([hidden]) { margin-left: 1.5rem; }
.ui-tabs .ui-tabs-nav li {
  position: relative;
  margin-bottom: -1px;
  padding: 0;
  list-style-type: none;
  white-space: nowrap;
}
.ui-tabs .ui-tabs-nav li a {
  display: flex;
  padding: 0.75rem 0.375rem;
  border-bottom-width: 3px;
  border-color: transparent;
  font-size: 1rem;
  line-height: 1.25rem;
  font-weight: 600;
  text-decoration-line: none;
  color: var(--accent);
  cursor: pointer;
}
.ui-tabs .ui-tabs-nav li a:hover {
  border-color: var(--border);
  color: var(--text);
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
  border-color: var(--cta);
  color: var(--cta);
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
.ui-tabs .ui-tabs-nav li.ui-state-processing a {
  cursor: default;
}
.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; }
.ui-tabs .ui-tabs-panel {
  display: block;
  padding: 1rem;
  background-color: transparent;
}
.ui-tabs .ui-tabs-hide { display: none; }

/* sub-tabs */
.subtabs {
  position: relative;
  margin-left: -0.5rem;
  margin-right: -0.5rem;
  zoom: 1;
}
.subtabs .ui-tabs-nav {
  margin: 0;
  padding: 0;
  display: flex;
  border-style: none;
}
.subtabs .ui-tabs-nav > :not([hidden]) ~ :not([hidden]) { margin-left: 1rem; }
.subtabs .ui-tabs-nav li {
  position: relative;
  padding: 0;
  list-style-type: none;
  white-space: nowrap;
}
.subtabs .ui-tabs-nav li a {
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  border-style: none;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  color: rgb(107 114 128);
  cursor: pointer;
}
.subtabs .ui-tabs-nav li a:hover {
  background-color: rgb(243 244 246);
  color: rgb(55 65 81);
}
.subtabs .ui-tabs-nav li.ui-tabs-selected a {
  background-color: rgba(var(--primary-200), 1);
  color: rgba(var(--primary-700), 1);
}
.subtabs .ui-tabs-nav li.ui-tabs-selected a,
.subtabs .ui-tabs-nav li.ui-state-disabled a,
.subtabs .ui-tabs-nav li.ui-state-processing a {
  cursor: default;
}
.subtabs .ui-tabs-panel {
  display: block;
  padding: 1rem;
  background-color: rgb(255 255 255);
}
.subtabs .ui-tabs-hide { display: none; }

/* highlighted badges */
.UITheme .ui-state-highlight,
.UITheme .ui-widget-content .ui-state-highlight,
.UITheme .ui-widget-header .ui-state-highlight {
  background-color: var(--cta);
  border-color: var(--cta);
  color: var(--on-cta);
}


/* =====================================================================
   5. FORMS
   ===================================================================== */

input[type=text],
input[type=password],
input[type=email],
textarea,
select {
  border-radius: 0.375rem;
  border-width: 1px;
  border-color: var(--border);
  background-color: var(--surface);
  color: var(--text);
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  --tw-ring-color: transparent;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
textarea:focus,
select:focus {
  border-color: rgba(var(--primary-400), 1);
  color: var(--text);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-color: rgba(var(--primary-400), 1);
}
input[type=text],
input[type=password],
input[type=email] { width: 18rem; }
textarea { width: 500px; }

input::placeholder,
textarea::placeholder { color: var(--menu-soft); }

input[type=checkbox] {
  border-radius: 0.25rem;
  border-color: var(--border);
  background-color: var(--surface);
}
input[type=checkbox]:checked,
input[type=checkbox]:hover:checked { background-color: rgba(var(--primary-600), 1); }
input[type=checkbox]:focus {
  color: rgba(var(--primary-600), 1);
  --tw-ring-color: rgba(var(--primary-400), 1);
  --tw-ring-offset-color: #fff;
}

input[type=radio] {
  border-radius: 9999px;
  border-color: var(--border);
  background-color: var(--surface);
}
input[type=radio]:checked,
input[type=radio]:hover:checked { background-color: rgba(var(--primary-600), 1); }
input[type=radio]:focus {
  color: rgba(var(--primary-600), 1);
  --tw-ring-color: rgba(var(--primary-400), 1);
  --tw-ring-offset-color: #fff;
}

input[type=file]::file-selector-button {
  margin-right: 1rem;
  cursor: pointer;
  border-radius: 9999px;
  border-width: 0px;
  background-color: rgba(var(--primary-100), 1);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: rgba(var(--primary-600), 1);
}
input[type=file]::file-selector-button:hover {
  background-color: rgba(var(--primary-200), 1);
  color: rgba(var(--primary-700), 1);
}

input.small,       select.small        { width: 3rem; }
input.medium,      select.medium       { width: 6rem; }
input.medium-large, select.medium-large { width: 9rem; }
input.large,       select.large       { width: 14rem; }

kbd {
  margin-bottom: 0.375rem;
  display: flex;
  align-items: center;
  font-family: Roboto;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
}
kbd > :not([hidden]) ~ :not([hidden]) { margin-left: 0.5rem; }

.counter { margin-top: -1rem; }

.ui-datepicker-trigger {
  float: left;
  display: block;
  padding: 0.75rem 0.5rem;
}

.cell-label {
  width: 8rem;
  text-align: right;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
}
.cell-spacer { width: 1.25rem; }

.flash_message {
  margin: -1.5rem -1.5rem 1.5rem;
  border-bottom-width: 1px;
  font-weight: 600;
}
.flash_message p {
  margin: 0;
  padding: 0.75rem 1.5rem;
}
.flash-success {
  border-color: rgba(var(--success-200), 1);
  background-color: rgba(var(--success-100), 1);
  color: rgba(var(--success-600), 1);
}
.flash-error {
  border-color: rgba(var(--danger-200), 1);
  background-color: rgba(var(--danger-100), 1);
  color: rgba(var(--danger-600), 1);
}
.flash-info {
  border-color: rgba(var(--info-200), 1);
  background-color: rgba(var(--info-100), 1);
  color: rgba(var(--info-600), 1);
}


/* =====================================================================
   6. TABLES
   ===================================================================== */

table {
  font-size: 1rem;
  line-height: 1.5rem;
}
.table100 { width: 100%; }
.table75  { width: 75%; }
.table560px { width: 500px; }

table.acp {
  border-width: 1px;
  border-color: rgb(229 231 235);
}
th {
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--accent);
}
td {
  padding: 0.25rem;
  vertical-align: middle;
}
table.table100 td,
table.table100 th {
  padding: 0.5rem;
  border-bottom: 2px solid var(--border);
}
tr.alt td,
tr.light_gray { background-color: var(--surface); }

td.align_top    { vertical-align: top; }
td.align_bottom { vertical-align: bottom; }
td.align_middle { vertical-align: middle; }
td.align_left   { text-align: left; }
td.align_right  { text-align: right; }
td.align_center { text-align: center; }

.col_15 { width: 1rem; }
.col_30 { width: 2rem; }
.col_40 { width: 2.5rem; }
.col_50 { width: 3.5rem; }
.col_75 { width: 75px; }
.col_100 { width: 6rem; }
.col_150 { width: 10rem; }
.col_200 { width: 13rem; }
.col_245 { width: 15rem; }
.col_260 { width: 16rem; }
.col_300 { width: 20rem; }
.col_20pct { width: 20%; }
.col_25pct { width: 25%; }
.col_30pct { width: 33.333333%; }
.col_40pct { width: 40%; }
.col_50pct { width: 50%; }
.col_60pct { width: 60%; }

.col1 {
  text-align: right;
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 600;
  color: var(--cta);
}
.col2 { font-weight: 600; }

/* ----- tile tables: zebra tables and control panel tables ----- */

table.zebra,
.ui-tabs-panel table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.6rem;
}

table.zebra thead th {
  padding: 0 1rem;
  text-align: left;
  font-size: 0.85rem;
  opacity: 0.7;
}
table.zebra thead th:not(:first-child) { text-align: center; }
table.zebra thead th:first-child { padding-left: calc(1rem + 6px); }

.ui-tabs-panel table th {
  padding: 0 1rem;
  border-bottom: 0;
  font-size: 0.85rem;
  opacity: 0.8;
}

table.zebra tbody > tr > td,
.ui-tabs-panel table tbody > tr > td {
  padding: 0.75rem 1rem;
  vertical-align: middle;
  background: var(--row-hover);
  border-top: 2px solid var(--line);
  border-bottom: 2px solid var(--line);
}
table.zebra tbody > tr.alt > td,
.ui-tabs-panel table tbody > tr.alt > td { background: var(--row-alt); }

table.zebra tbody > tr > td:first-child,
.ui-tabs-panel table tbody > tr > td:first-child {
  border-left: 6px solid var(--accent);
  border-radius: 0.4rem 0 0 0.4rem;
}
table.zebra tbody > tr > td:last-child,
.ui-tabs-panel table tbody > tr > td:last-child {
  border-right: 2px solid var(--line);
  border-radius: 0 1.25rem 1.25rem 0;
}

/* write pages use a plain edge instead of the blue one */
.ourea-write table.zebra tbody > tr > td:first-child {
  border-left: 2px solid var(--line);
}

table.zebra tbody > tr:hover > td:first-child,
.ui-tabs-panel table tbody > tr:hover > td:first-child { border-left-color: var(--cta); }

table.zebra span.fontSmall.gray,
table.zebra span.fontSmall.gray strong,
.ui-tabs-panel table span.fontSmall.gray,
.ui-tabs-panel table span.fontSmall.gray strong { color: var(--text-soft); }

/* icons in the last cell stay on one line */
.ui-tabs-panel table td:has(img) { white-space: nowrap; }
.ui-tabs-panel table td:has(img) a,
.ui-tabs-panel table td:has(img) img {
  display: inline-block;
  vertical-align: middle;
}
table.zebra td.align_right img[src*="combadge"] {
  height: 50px;
  width: auto;
  max-width: none;
}

/* pagination */
table.zebra + p.fontMedium {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}
table.zebra + p.fontMedium > a,
table.zebra + p.fontMedium > strong {
  display: inline-block;
  min-width: 2.2rem;
  padding: 0.3rem 0.8rem;
  border: 2px solid var(--border);
  border-radius: 9999px;
  background: var(--surface);
  color: var(--accent);
  font-size: 0.95rem;
  line-height: 1.5rem;
  font-weight: 700;
  text-align: center;
}
table.zebra + p.fontMedium > a:hover {
  border-color: var(--cta);
  color: var(--cta);
}
table.zebra + p.fontMedium > strong {
  background: var(--cta);
  border-color: var(--cta);
  color: var(--on-cta);
}


/* =====================================================================
   7. BUTTONS, PILLS, BOXES
   ===================================================================== */

.nav-main ul li a,
.button-main,
.button-sec,
.button-small,
.pill {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.button-main {
  padding: 0.375rem 1.5rem;
  border-radius: 0.375rem;
  border-width: 2px;
  border-color: transparent;
  background-color: var(--cta);
  font-weight: 600;
  color: var(--on-cta);
}
.button-main:hover {
  border-color: var(--cta);
  background-color: transparent;
  color: var(--cta);
}
.button-main:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.button-sec,
.button-small {
  padding: 0.375rem 1.5rem;
  border-radius: 0.375rem;
  border-width: 2px;
  border-color: var(--border);
  background-color: var(--surface);
  font-weight: 600;
  color: var(--text);
}
.button-sec:hover,
.button-small:hover {
  border-color: rgb(229 231 235);
  background-color: var(--border);
  color: var(--text);
}
.button-sec:disabled,
.button-small:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.button-small {
  padding: 0.125rem 0.5rem;
  font-weight: 500;
}

.pill-container {
  margin-top: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  color: transparent;
}
.pill-inline-container { color: transparent; }
.pill {
  margin: 0.25rem 0;
  padding: 0.125rem 0.625rem;
  border-radius: 9999px;
  font-weight: 500;
}
.pill,
.count {
  background-color: var(--border);
  border-color: var(--border);
  color: var(--text);
}
.pill { border-width: 1px; }
a.pill:hover {
  border-color: rgba(var(--primary-200), 1);
  background-color: rgba(var(--primary-100), 1);
  color: rgba(var(--primary-600), 1);
}

/* note boxes */
#comments p,
#news_blocks p,
.post_info,
.info-full,
#notes {
  padding: 0.75rem 1rem;
  border-radius: 0.375rem;
  border-width: 2px;
  border-color: var(--border);
  background-color: var(--surface);
}
#notes {
  margin-bottom: 2rem;
  padding: 0.25rem 0.5rem;
}
.info-full p {
  margin-bottom: 0;
  line-height: 1;
}
#notes h3,
#notes p {
  margin-bottom: 0.4rem;
  line-height: 1.1;
}

.system_warning {
  z-index: 50;
  width: 100%;
  padding: 0.5rem 0;
  background-color: rgba(var(--warning-300), 1);
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: rgba(var(--warning-900), 1);
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.upload-close {
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
  color: rgba(var(--danger-500), 1) !important;
}
.upload-close:hover {
  background-color: rgba(var(--danger-500), 1) !important;
  color: rgb(255 255 255) !important;
}
.activity-border {
  border-right-width: 1px;
  border-color: rgb(229 231 235);
}


/* =====================================================================
   8. CONTROL PANEL (ADMIN)
   ===================================================================== */

#acp-panel {
  display: flex;
  overflow: hidden;
  border-width: 2px;
  border-color: var(--border);
  border-radius: 1.5rem 1.5rem 0 0;
  background-color: var(--surface);
}
#acp-panel .panelnav { width: 12rem; }
#acp-panel .panel {
  flex: 1 1 0%;
  padding: 1rem;
  border-left-width: 2px;
  border-bottom-width: 0px;
  border-color: var(--border);
  background-color: var(--surface);
  color: var(--text);
}

#panelmenu {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  list-style-type: none;
}
#panelmenu > :not([hidden]) ~ :not([hidden]) { margin-top: 0.25rem; }
#panelmenu li a {
  display: flex;
  align-items: center;
  margin: 0 0.5rem;
  padding: 0.375rem 0.75rem;
  border-width: 0;
  border-radius: 9999px;
  font-weight: 700;
  text-decoration-line: none;
  color: var(--accent);
}
#panelmenu li a:hover {
  background-color: var(--bg);
  color: var(--text);
}
#panelmenu li a span { width: 100%; }
#panelmenu li a.active {
  background-color: var(--bg);
  color: var(--cta);
}
#panelmenu li a.active:hover {
  background-color: var(--surface);
  color: var(--cta);
}

#online {
  margin-bottom: 2rem;
  padding: 0.375rem 0.75rem;
  border-width: 2px;
  border-top-width: 0;
  border-color: var(--border);
  border-radius: 0 0 1.5rem 1.5rem;
  background-color: var(--surface);
}

.count {
  float: right;
  padding: 0.25rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
}
.UITheme .count,
#panelmenu li a .count {
  background: var(--border) !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}


/* =====================================================================
   9. USER SLIDE-OUT PANEL
   ===================================================================== */

.panel-wrapper {
  position: relative;
  z-index: 20;
}
.panel-overlay {
  position: fixed;
  inset: 0px;
  background-color: rgb(0 0 0 / 0.6);
  --tw-backdrop-blur: blur(8px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
          backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
#panel {
  position: fixed;
  inset: 0px;
  z-index: 10;
  overflow-y: auto;
  padding: 5rem;
}
.panel-close {
  position: absolute;
  right: -2.5rem;
  top: -0.5rem;
  padding: 0.5rem;
  color: rgb(107 114 128);
}
.panel-close:hover { color: rgb(75 85 99); }
.panel-close > svg {
  height: 1.5rem;
  width: 1.5rem;
  color: rgb(107 114 128);
}
.panel-close > svg:hover { color: rgb(75 85 99); }

#panel .panel-body {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: 36rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-radius: 0.5rem;
  background-color: var(--surface);
  color: var(--text);
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  --tw-ring-color: rgb(0 0 0 / 0.05);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
#panel .panel-body > :not([hidden]) ~ :not([hidden]) {
  border-top-width: 1px;
  border-bottom-width: 0;
  border-color: rgb(107 114 128 / 0.1);
}

.panel-body h4 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  padding: 0 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  color: var(--menu-soft);
}
.panel-body > ul {
  scroll-padding-top: 0.5rem;
  scroll-padding-bottom: 0.5rem;
}
.panel-body > ul > :not([hidden]) ~ :not([hidden]) {
  border-top-width: 1px;
  border-bottom-width: 0;
  border-color: var(--line);
}
.panel-body > ul > li { padding: 0.5rem; }
.panel-body > ul > li > ul {
  padding: 0;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.panel-body > ul > li > ul > li {
  display: flex;
  width: 100%;
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  justify-content: space-between;
}
.panel-body > ul > li > ul > li > a {
  display: flex;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  border-style: none;
  color: var(--lavender);
}
.panel-body > ul > li > ul > li > a:hover {
  background-color: var(--fill);
  color: var(--orange);
}
.panel-body a.edit {
  width: 6rem;
  flex-shrink: 1;
  justify-content: flex-end;
}
.panel-body a.edit:hover { background-color: transparent; }

/* old Nova panel handle classes */
.panel-handle a,
.panel-handle a:hover {
  margin: 0;
  display: block;
  padding: 0;
}
.panel-handle a:focus,
.panel-handle a:hover:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.panel-handle a span {
  display: block;
  padding: 0 1rem;
}
.panel-handle .ui-icon {
  margin-top: 0.25rem;
  margin-left: 0.25rem;
  padding: 0;
}
.panel-handle {
  height: 1.5rem;
  line-height: 1.5rem;
}
.panel-trigger {
  float: right;
  display: block;
  width: 8rem;
}
#panel-handle-left { width: auto; }
#panel-handle-left li {
  float: left;
  margin-right: 0.125rem;
}
.panel-notify-icon {
  float: left;
  margin-top: 0.375rem;
  margin-right: 0.375rem;
}
.panel-clear { clear: both; }
.panel_1, .panel_2, .panel_3 { width: 300px; }
.panel_spacer { width: 2rem; }


/* =====================================================================
   10. SMALL UTILITIES AND LEGACY NOVA CLASSES
   ===================================================================== */

ul.square { list-style: square; }
ol.roman  { list-style: upper-roman; }
ul.none,
ol.none   { list-style-type: none; }
ul.margin0,
ol.margin0 { margin: 0; }
ul.margin1 { margin: 1rem; }
ul.padding0 { padding: 0; }
ul.padding1 { padding: 0.5rem 1rem; }

#list-grid { list-style-type: none; }
#list-grid li {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
}
#list li {
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 600;
}

.loader {
  height: 3.5rem;
  text-align: center;
}
.inline_img_left {
  float: left;
  margin-top: 0.125rem;
  margin-right: 0.375rem;
}
.bio_main_image {
  float: right;
  max-height: 250px;
  max-width: 200px;
}
.award-small { width: 4rem; }
.indent-left { padding-left: 1.5rem; }


/* =====================================================================
   11. DROPDOWN WIDGETS
   ===================================================================== */

/* Chosen (newer class names) */
.chosen-container-multi .chosen-choices,
.chosen-container-single .chosen-single,
.chosen-container .chosen-drop {
  background: var(--menu-bg);
  border: 2px solid var(--menu-hover);
  border-radius: 0.9rem;
  color: var(--text);
}
.chosen-container-multi .chosen-choices li.search-choice {
  background: var(--menu-hover);
  border: 0;
  color: var(--text);
}
.chosen-container .chosen-results li { color: var(--text); }
.chosen-container .chosen-results li.highlighted {
  background: var(--menu-hover);
  color: var(--orange);
}
.chosen-container-multi .chosen-choices li.search-field input[type=text] { color: var(--text); }

/* Chosen (older class names) */
.chzn-container-multi .chzn-choices,
.chzn-container-single .chzn-single,
.chzn-container .chzn-drop,
.chzn-container .chzn-results {
  background: var(--menu-bg) !important;
  border-color: var(--menu-hover) !important;
  color: var(--text) !important;
}
.chzn-container-multi .chzn-choices li.search-choice {
  background: var(--menu-hover) !important;
  border-color: var(--menu-hover) !important;
  color: var(--text) !important;
}
.chzn-container .chzn-results li {
  background: transparent !important;
  color: var(--text) !important;
}
.chzn-container .chzn-results .highlighted {
  background: var(--menu-hover) !important;
  color: var(--orange) !important;
}
.chzn-container .chzn-results .group-result { color: var(--menu-soft) !important; }

/* Select2 */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single,
.select2-dropdown,
.select2-results,
.select2-search__field {
  background: var(--menu-bg) !important;
  border-color: var(--menu-hover) !important;
  color: var(--text) !important;
}
.select2-container--default .select2-selection__choice {
  background: var(--menu-hover) !important;
  border-color: var(--menu-hover) !important;
  color: var(--text) !important;
}
.select2-container--default .select2-results__option {
  background: transparent !important;
  color: var(--text) !important;
}
.select2-container--default .select2-results__option--highlighted {
  background: var(--menu-hover) !important;
  color: var(--orange) !important;
}
.select2-container--default .select2-results__group { color: var(--menu-soft) !important; }


/* =====================================================================
   12. PAGES
   ===================================================================== */

/* ----- page titles shared by several pages ----- */
.ourea-sim h1,
.ourea-personnel h1,
.ourea-write h1,
.ourea-post h1 {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  font-weight: 700;
}
.ourea-post h1 { margin-bottom: 0.5rem; }


/* ----- front page (main_index.php) ----- */

.ourea-home .home-hero {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  align-items: center;
  padding: 2rem 0 2.5rem;
}
.ourea-home h1 {
  font-size: clamp(2.75rem, 8vw, 5rem);
  line-height: 0.95;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 1.25rem;
  color: var(--text);
}
.ourea-home .home-lede {
  font-size: 1.2rem;
  line-height: 1.6;
  max-width: 34ch;
  color: var(--text);
  margin: 0;
  justify-self: start;
}
.ourea-home .home-cta { display: flex; flex-wrap: wrap; gap: 0.75rem; }

.ourea-home a.home-btn {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  border: 2px solid var(--cta);
  border-radius: 30px;
  background: var(--cta);
  color: var(--on-cta);
  font-weight: 700;
}
.ourea-home a.home-btn:hover { background: var(--accent); border-color: var(--accent); color: var(--on-cta); }
.ourea-home a.home-btn-alt { background: transparent; border-color: var(--purple); color: var(--text); }
.ourea-home a.home-btn-alt:hover { background: var(--surface); border-color: var(--purple); color: var(--text); }

.ourea-home .home-welcome { margin: 0 0 2rem; }
.ourea-home .home-welcome img { width: 100%; border: 1px solid var(--border); border-radius: 1.25rem; }
.ourea-home .home-welcome p { margin: 0; color: var(--accent); }

/* facts strip */
.ourea-home .home-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  border: 2px solid var(--border);
  border-radius: 1.5rem;
  background: var(--surface);
}
.ourea-home .home-facts div { padding: 1.1rem 1.4rem; border-right: 2px solid var(--border); }
.ourea-home .home-facts div:last-child { border-right: 0; }
.ourea-home .home-facts b {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent);
  padding-bottom: 0.3rem;
  border-bottom: 2px solid var(--accent);
}
.ourea-home .home-facts span {
  display: inline-block;
  font-size: 0.95rem;
  color: var(--cta);
  padding-top: 0.6rem;
}

/* section headings */
.ourea-home h2.home-h2 {
  margin: 3rem 0 0.25rem;
  font-size: 1.9rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--text);
}
.ourea-home .home-sub { margin: 0 0 1.5rem; color: var(--accent); }

/* post cards */
.ourea-home .home-posts { display: grid; gap: 1rem; margin-top: 1.25rem; }
.ourea-home .home-post {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 0.5rem 1.5rem;
  padding: 1.4rem;
  background: var(--surface);
  border: 2px solid var(--border);
  border-left: 6px solid var(--accent);
  border-radius: 0.4rem 1.25rem 1.25rem 0.4rem;
}
.ourea-home .home-meta { font-size: 0.9rem; line-height: 1.4; color: var(--accent); }
.ourea-home .home-meta strong { display: block; margin-bottom: 0.25rem; font-weight: 700; color: var(--text); }
.ourea-home .home-meta strong a { color: var(--text); }
.ourea-home .home-post h3 { margin: 0 0 0.25rem; font-size: 1.25rem; line-height: 1.3; font-weight: 700; }
.ourea-home .home-post h3 a:hover { color: var(--accent); }
.ourea-home .home-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 62ch;
  color: var(--text);
}
.ourea-home .home-excerpt p { margin: 0 0 0.5rem; }

/* steps */
.ourea-home .home-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.ourea-home .home-steps li {
  counter-increment: step;
  padding: 1.25rem;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 1.5rem;
}
.ourea-home .home-steps li::before {
  content: counter(step);
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  margin-bottom: 0.6rem;
  border-radius: 50%;
  background: var(--accent);
  color: var(--on-cta);
  font-weight: 700;
}
.ourea-home .home-steps b { display: block; font-size: 1.1rem; font-weight: 700; color: var(--text); }
.ourea-home .home-steps span { color: var(--accent); }

/* join banner */
.ourea-home .home-join {
  margin: 3rem 0 1rem;
  padding: 2.25rem;
  text-align: center;
  border-radius: 1.5rem;
  background: linear-gradient(135deg, var(--accent-hi), var(--accent));
  color: var(--on-cta);
}
.ourea-home .home-join h2 { margin: 0 0 0.5rem; font-size: 1.9rem; line-height: 1.2; font-weight: 700; color: var(--on-cta); }
.ourea-home .home-join p { margin: 0 0 1rem; color: var(--on-cta); }
.ourea-home .home-join a { color: var(--on-cta); text-decoration: underline; }
.ourea-home .home-join a.home-btn { background: var(--on-cta); border-color: var(--on-cta); color: var(--text); text-decoration: none; }

/* front page tabs */
.ourea-home #tabs ul {
  display: flex;
  gap: 32px;
  margin: 32px 0 24px;
  padding: 0 0 12px;
  list-style: none;
  border-bottom: 2px solid var(--row-hover);
}
.ourea-home #tabs ul li {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
.ourea-home #tabs ul li a,
.ourea-home #tabs ul li a span {
  font-size: 20px;
  font-weight: 700;
  font-variant: normal;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.2;
  color: var(--slate);
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0;
}
.ourea-home #tabs ul li a:hover,
.ourea-home #tabs ul li a:hover span { color: var(--text-soft); }

.ourea-home #tabs ul li.ui-tabs-selected a,
.ourea-home #tabs ul li.ui-tabs-selected a span,
.ourea-home #tabs ul li.ui-tabs-active a,
.ourea-home #tabs ul li.ui-tabs-active a span { color: var(--text); }

.ourea-home #tabs ul li.ui-tabs-selected a,
.ourea-home #tabs ul li.ui-tabs-active a {
  display: inline-block;
  padding-bottom: 12px;
  margin-bottom: -13px;
  border-bottom: 3px solid var(--cta);
}

@media (max-width: 760px) {
  .ourea-home .home-hero { grid-template-columns: 1fr; padding: 1.5rem 0; }
  .ourea-home .home-facts,
  .ourea-home .home-steps { grid-template-columns: 1fr; }
  .ourea-home .home-facts div { border-right: 0; border-bottom: 1px solid var(--border); }
  .ourea-home .home-facts div:last-child { border-bottom: 0; }
  .ourea-home .home-post { grid-template-columns: 1fr; }
}


/* ----- mission post view (sim_viewpost.php) ----- */

.ourea-post .post-nav { display: flex; justify-content: space-between; gap: 0.75rem; margin: 0 0 1.25rem; }
.ourea-post .post-nav-bottom { margin: 2rem 0 1.5rem; }
.ourea-post .post-nav-next { margin-left: auto; }
.ourea-post a.post-nav-link {
  padding: 0.4rem 1rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  background: var(--surface);
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 600;
}
.ourea-post a.post-nav-link:hover { border-color: var(--cta); color: var(--cta); }

.ourea-post .post-notice {
  margin: 0 0 1rem;
  padding: 0.6rem 1rem;
  border: 1px solid var(--cta);
  border-radius: 1rem;
  font-weight: 700;
  color: var(--cta);
}
.ourea-post .post-byline { margin: 0 0 1.25rem; font-size: 0.95rem; line-height: 1.6; color: var(--accent); }

/* details bar (same look as the front page facts strip) */
.ourea-post .post-details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0;
  margin: 0 0 2rem;
  overflow: hidden;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 1.5rem;
}
.ourea-post .post-details div {
  padding: 0.9rem 1.25rem;
  background: var(--surface);
  border-right: 2px solid var(--border);
}
.ourea-post .post-details div:last-child { border-right: 0; }
.ourea-post .post-details b {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent);
  padding-bottom: 0.3rem;
  border-bottom: 2px solid var(--accent);
}
.ourea-post .post-details span {
  display: inline-block;
  padding-top: 0.6rem;
  font-size: 0.95rem;
  color: var(--cta);
}

.ourea-post .post-story { max-width: 70ch; font-size: 1.075rem; line-height: 1.85; color: var(--text); }
.ourea-post .post-story p { margin: 0 0 1.25rem; font-size: inherit; line-height: inherit; }

.ourea-post .post-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0; }
.ourea-post a.post-btn {
  display: inline-block;
  padding: 0.55rem 1.25rem;
  border: 2px solid var(--purple);
  border-radius: 9999px;
  background: transparent;
  color: var(--text);
  font-weight: 700;
}
.ourea-post a.post-btn:hover { background: var(--surface); color: var(--text); }
.ourea-post a.post-btn-main { background: var(--cta); border-color: var(--cta); color: var(--on-cta); }
.ourea-post a.post-btn-main:hover { background: var(--accent); border-color: var(--accent); color: var(--on-cta); }

.ourea-post h2.post-comments-h {
  margin: 2.5rem 0 1rem;
  font-size: 1.6rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--text);
}
.ourea-post .post-comment {
  margin: 0 0 1rem;
  padding: 1.1rem 1.4rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 6px solid var(--upcoming);
  border-radius: 1.5rem;
}
.ourea-post .post-comment-meta { margin-bottom: 0.4rem; font-size: 0.9rem; font-weight: 700; color: var(--accent); }
.ourea-post .post-comment-text { color: var(--text); }


/* ----- sim pages (sim_index.php, sim_missions_all.php) ----- */

.ourea-sim .sim-message {
  margin: 0 0 2rem;
  padding: 1.5rem 1.75rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--cta);
  border-top: 4px solid var(--cta);
  border-radius: 1.5rem;
  line-height: 1.75;
  color: var(--text);
}
.ourea-sim .sim-message p:last-child { margin-bottom: 0; }

.ourea-sim .sim-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.ourea-sim a.sim-link {
  display: block;
  padding: 1.25rem;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 1.5rem;
}
.ourea-sim a.sim-link:hover {
  border-left: 2px solid var(--cta);
  border-top: 2px solid var(--cta);
}
.ourea-sim a.sim-link b { display: block; font-size: 1.15rem; font-weight: 700; color: var(--cta); }
.ourea-sim a.sim-link span { font-size: 0.95rem; color: var(--accent); }

/* mission cards (edge colour follows the mission's status) */
.ourea-sim .mission-list { display: grid; gap: 1rem; padding-top: 0.5rem; }
.ourea-sim .mission-card {
  padding: 1.4rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 6px solid var(--purple);
  border-radius: 1.5rem;
}
.ourea-sim .mission-card.status-current   { border-left-color: var(--accent); }
.ourea-sim .mission-card.status-upcoming  { border-left-color: var(--upcoming); }
.ourea-sim .mission-card.status-completed { border-left-color: var(--purple); }
.ourea-sim .mission-card h3 {
  margin: 0 0 0.25rem;
  font-size: 1.35rem;
  line-height: 1.3;
  font-weight: 700;
}
.ourea-sim .mission-card h3 a { color: var(--text); }
.ourea-sim .mission-card h3 a:hover { color: var(--cta); }
.ourea-sim .mission-count {
  display: inline-block;
  margin: 0 0 0.75rem;
  padding: 0.1rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent);
}
.ourea-sim .mission-desc { max-width: 70ch; color: var(--text); }
.ourea-sim .mission-desc p:last-child { margin-bottom: 0; }
.ourea-sim .mission-group { margin: 0.75rem 0 0; font-size: 0.9rem; color: var(--accent); }


/* ----- personnel / manifest ----- */

/* Show / Toggle links as pills */
.ourea-personnel #manifest > div.fontSmall { margin: 0.5rem 0 1rem; font-size: 0; line-height: 2.4; }
.ourea-personnel #manifest > div.fontSmall strong { margin-right: 0.6rem; font-size: 0.9rem; opacity: 0.7; }
.ourea-personnel #manifest > div.fontSmall a.is-on { border-color: var(--cta-soft); }
.ourea-personnel #manifest > div.fontSmall a {
  display: inline-block;
  margin: 0 0.4rem 0.3rem 0;
  padding: 0.2rem 0.9rem;
  border: 2px solid var(--line);
  border-radius: 20px;
  background: var(--row-hover);
  font-size: 0.85rem;
  line-height: 1.5;
}
.ourea-personnel #manifest > div.fontSmall a:hover { color: var(--accent); }
.ourea-personnel #manifest hr { border-color: var(--line-soft); }

.ourea-personnel #manifest h3 { margin: 1.5rem 0 0; font-size: 1.5rem; font-weight: 700; color: var(--accent); }
.ourea-personnel #manifest h4 { margin: 0.5rem 0 0; font-size: 1.1rem; font-weight: 700; opacity: 0.8; }

/* each crew row becomes a card */
.ourea-personnel #manifest table { width: 100%; border-collapse: separate; border-spacing: 0 0.6rem; }
.ourea-personnel #manifest tr.fontSmall > td {
  padding: 0.75rem 1rem;
  vertical-align: middle;
  background: var(--row-hover);
  border-top: 2px solid var(--line);
  border-bottom: 2px solid var(--line);
}
.ourea-personnel #manifest tr.fontSmall > td:first-child {
  border-left: 2px solid var(--line);
  border-radius: 1.25rem 0 0 1.25rem;
}
.ourea-personnel #manifest tr.fontSmall > td:last-child {
  width: auto;
  white-space: nowrap;
  border-right: 2px solid var(--line);
  border-radius: 0 1.25rem 1.25rem 0;
}
.ourea-personnel #manifest tr.fontSmall > td:last-child img {
  height: 50px;
  width: auto;
  max-width: none;
}

/* NPCs, inactive crew, open positions, player characters */

/* corner radius: small on the left, large on the right */
.ourea-personnel #manifest tr.fontSmall > td:first-child { border-radius: 0.5rem 0 0 0.5rem; }
.ourea-personnel #manifest tr.fontSmall > td:last-child  { border-radius: 0 1.25rem 1.25rem 0; }

.ourea-personnel #manifest tr.npc > td:first-child { border-left: 6px solid var(--accent); }
.ourea-personnel #manifest tr.inactive { opacity: 0.6; }
.ourea-personnel #manifest tr.open > td { border-top-style: dashed; border-bottom-style: dashed; }
.ourea-personnel #manifest tr.open > td:first-child { border-left: 6px solid var(--slate-open); }
.ourea-personnel #manifest tr.open > td:last-child { border-right-style: dashed; }
.ourea-personnel #manifest tr.active > td:first-child { border-left: 6px solid var(--cta); }

/* small badge icons on the Show / Toggle pills */
.ourea-personnel #manifest > div.fontSmall a[id]::before,
.ourea-personnel #manifest > div.fontSmall a[rel="tooltip"]::before,
.ourea-personnel #manifest > div.fontSmall a[href*="personnel/index/"]::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 5px;
  vertical-align: -3px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.ourea-personnel #manifest > div.fontSmall a[rel="tooltip"]::before { background-image: url('/application/views/Ourea/main/images/ombadge.png'); }

.ourea-personnel #manifest > div.fontSmall a#all::before,
.ourea-personnel #manifest > div.fontSmall a#active::before { background-image: url('/application/views/Ourea/main/images/combadge.png'); }
.ourea-personnel #manifest > div.fontSmall a#npc::before,
.ourea-personnel #manifest > div.fontSmall a#toggle_npc::before { background-image: url('/application/views/Ourea/main/images/combadge_npc.png'); }
.ourea-personnel #manifest > div.fontSmall a#open::before,
.ourea-personnel #manifest > div.fontSmall a#toggle_open::before { background-image: url('/application/views/Ourea/main/images/combadge_green.png'); }
.ourea-personnel #manifest > div.fontSmall a#inactive::before { background-image: url('/application/views/Ourea/main/images/combadge_red.png'); }

/* one badge per department / ship link (by position number) */
.ourea-personnel #manifest > div.fontSmall a[href$="personnel/index/1"]::before { background-image: url('/application/views/Ourea/main/images/sigma.svg'); filter: brightness(0) invert(1); }
.ourea-personnel #manifest > div.fontSmall a[href$="personnel/index/2"]::before { background-image: url('/application/views/Ourea/main/images/akira.svg'); filter: brightness(0) invert(1); }
.ourea-personnel #manifest > div.fontSmall a[href$="personnel/index/3"]::before,
.ourea-personnel #manifest > div.fontSmall a[href$="personnel/index/4"]::before,
.ourea-personnel #manifest > div.fontSmall a[href$="personnel/index/6"]::before { background-image: url('/application/views/Ourea/main/images/combadge.png'); }


/* ----- write pages ----- */

.ourea-write h2 { margin: 1rem 0 0.5rem; font-size: 1.5rem; font-weight: 700; }

.ourea-write > p { display: inline-block; margin: 0 0.75rem 0.75rem 0; }
.ourea-write > p > a.image {
  display: inline-block;
  padding: 0.55rem 1.25rem;
  border: 2px solid var(--slate);
  border-radius: 9999px;
  background: var(--row-hover);
  font-weight: 700;
}
.ourea-write > p > a.image:hover { color: var(--accent-hi); }

/* the form and read-only view as a card */
.ourea-write form,
.ourea-write #readonly {
  padding: 1.5rem;
  background: var(--fill-soft);
  border: 2px solid var(--line);
  border-radius: 1.5rem;
}
.ourea-write form > p,
.ourea-write #readonly > p { margin: 0 0 1.25rem; }

.ourea-write kbd {
  display: block;
  margin-bottom: 0.35rem;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  color: rgb(var(--primary-600));
}

/* every field the same width */
.ourea-write input[type=text],
.ourea-write .chzn-container { width: 28rem !important; max-width: 100%; }
.ourea-write .chzn-container .chzn-drop,
.ourea-write .chzn-container-single .chzn-single { width: 100% !important; box-sizing: border-box; }
.ourea-write input[type=text],
.ourea-write textarea { padding: 0.6rem 0.9rem; border-width: 2px; border-radius: 0.9rem; }
.ourea-write textarea { width: 100%; max-width: 100%; min-height: 22rem; line-height: 1.7; }
.ourea-write .counter { margin-top: 0.4rem; opacity: 0.7; }
.ourea-write #notes { margin-bottom: 1.5rem; padding: 1rem 1.25rem; border-radius: 1.5rem; }


/* ----- mission info tab (sim_missions_one.php) ----- */

#one table.table100 {
  border-collapse: separate;
  border-spacing: 0 10px;
}
#one table.table100 tr:nth-child(odd) td  { background: var(--row-odd); }
#one table.table100 tr:nth-child(even) td { background: var(--row-even); }
#one td.cell-label {
  width: 160px;
  white-space: nowrap;
  text-align: left;
}


/* ----- stats page (sim_stats.php) ----- */

#one table.stats-group {
  table-layout: fixed;
  margin-bottom: 24px;
}


/* ----- login pages ----- */

/* page frame (template_login.php): same dark palette as the main site */
html body { background-color: var(--bg); color: var(--text); }
body .head .title { color: var(--accent); font-weight: 700; }
body .logo img { filter: var(--logo-filter); }

/* the card around the form: same look as the facts strip / mission cards */
html body .container .card,
html body .card {
  background: var(--surface) !important;
  border: 2px solid var(--border) !important;
  border-left: 6px solid var(--accent) !important;
  border-top: 6px solid var(--accent) !important;
  border-radius: 1.5rem !important;
  box-shadow: none !important;
  color: var(--text) !important;
}

/* the form itself: flat, because the card is already the box */
.ourea-write.ourea-login { margin: 0; max-width: none; }
.ourea-write.ourea-login form { padding: 0; background: none; border: 0; border-radius: 0; }
.ourea-write.ourea-login h1 { color: var(--text); }

/* fields, darker than the card so they stand out */
.ourea-login input[type=text],
.ourea-login input[type=email],
.ourea-login input[type=password],
.ourea-login select {
  width: 100% !important; max-width: 100%; box-sizing: border-box;
  background-color: var(--bg); border-color: var(--border); color: var(--text);
}
.ourea-login input:focus,
.ourea-login select:focus { border-color: var(--purple); }

/* remember-me row and buttons */
.ourea-login .controls {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 0.75rem; margin: 0 0 1.25rem;
}
.ourea-login .controls a { color: var(--accent); }
.ourea-login .controls a:hover { color: var(--cta); }
.ourea-login .checkbox { display: flex; align-items: center; gap: 0.5rem; }
.ourea-login form > button,
.ourea-login a.button-sec { display: inline-block; margin-right: 0.5rem; }

.ourea-login kbd {
  color: var(--orange) !important;
  font-family: Roboto, sans-serif !important;
  font-variant: normal !important;
  text-transform: none !important;
}
/* ----- admin pop-ups (Facebox) ----- */
html body #facebox { color: var(--text); }
html body #facebox .popup {
  border: 2px solid var(--border);
  border-radius: 1.5rem;
  overflow: hidden;
}
html body #facebox .hud_body {
  background: var(--surface);
  border-radius: 1.5rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
}
html body #facebox .hud_title {
  background: var(--bg);
  border-bottom: 2px solid var(--border);
  border-radius: 0;
  box-shadow: none;
  color: var(--accent);
}
html body #facebox .hud_content {
  background: var(--surface);
  color: var(--text);
  border-radius: 0;
}
html body #facebox .hud_content h2 { color: var(--accent); }
html body #facebox .hud_content .controls {
  background: var(--bg);
  border-top: 2px solid var(--border);
  box-shadow: none;
  border-radius: 0;
}

/* fields inside the pop-up */
html body textarea.hud,
html body input.hud,
html body select.hud {
  background: var(--bg);
  border: 2px solid var(--border);
  border-radius: 0.6rem;
  color: var(--text);
}
html body textarea.hud:focus,
html body input.hud:focus,
html body select.hud:focus {
  background: var(--bg);
  border-color: var(--purple);
  color: var(--text);
}

/* Submit button: same as your main buttons */
html body #facebox button.hud_button {
  background: var(--cta);
  border: 2px solid transparent;
  border-radius: 1.5rem;
  color: var(--on-cta);
  text-shadow: none;
  box-shadow: none;
}
html body #facebox button.hud_button:hover {
  background: transparent;
  border-color: var(--cta);
  color: var(--cta);
}
/* ----- dark / light toggle ----- */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 2px solid var(--border);
  border-radius: 9999px;
  background: var(--surface);
  color: var(--accent);
  cursor: pointer;
  transition: color 150ms, border-color 150ms;
}
.theme-toggle:hover { border-color: var(--cta); color: var(--cta); }
.theme-toggle-corner { position: fixed; top: 1rem; right: 1rem; z-index: 10; }

/* ===== Mobile / tablet ===== */
@media (max-width: 900px) {

  /* header: logo + sign-in on row 1, nav pills wrap onto row 2 */
  header > .wrapper { flex-wrap: wrap; gap: 0.75rem; padding: 0.75rem 1rem; }
  header .nav-main { order: 3; flex: 1 1 100%; justify-content: flex-start; }
  .nav-main ul { flex-wrap: wrap; margin: 0; gap: 0.5rem; }
  .nav-main ul > :not([hidden]) ~ :not([hidden]) { margin-left: 0; }
  header .signin-container .logged-in-controls { padding: 0; }

  /* content full width; side nav drops underneath */
  main { display: flex; flex-direction: column; }
  main .content { order: 1; margin-right: 0; padding: 1rem; overflow-x: auto; }
  .nav-sub { order: 2; float: none; width: auto; text-align: left; padding: 0 1rem 1rem; }
  footer { order: 3; flex-wrap: wrap; gap: 0.5rem 1rem; text-align: center; }

  /* stop fixed widths pushing the page sideways */
  input[type=email], input.large, select.large, textarea, .table560px, .table75 {
    max-width: 100%;
    box-sizing: border-box;
  }
  textarea { width: 100%; }
  .panel_1, .panel_2, .panel_3 { max-width: 100%; }
}

@media (max-width: 900px) {

  /* 1. Mission post: Authors box stays inside the card */
  .ourea-write .chosen-container { width: 100% !important; max-width: 100%; box-sizing: border-box; }

  /* 2. Manifest: slim the spacer cells and give the rank pips a fixed size */
  .ourea-personnel #manifest tr.fontSmall > td { padding: 0.6rem 0.5rem; }
  .ourea-personnel #manifest tr.fontSmall > td.col_15,
  .ourea-personnel #manifest tr.fontSmall > td:nth-child(4) { width: 0; padding: 0; }
  .ourea-personnel #manifest tr.fontSmall > td.col_150 { width: 6rem; min-width: 6rem; }
  .ourea-personnel #manifest tr.fontSmall > td.col_150 img { width: 5.5rem; max-width: none; height: auto; }

  /* 3. Tab menus swipe sideways instead of overflowing the page */
  .ui-tabs .ui-tabs-nav,
  .subtabs .ui-tabs-nav,
  .ourea-home #tabs ul {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .ui-tabs .ui-tabs-nav::-webkit-scrollbar,
  .subtabs .ui-tabs-nav::-webkit-scrollbar,
  .ourea-home #tabs ul::-webkit-scrollbar { display: none; }
  .ui-tabs .ui-tabs-nav li,
  .subtabs .ui-tabs-nav li,
  .ourea-home #tabs ul li { flex: 0 0 auto; }
  .ui-tabs .ui-tabs-nav li { margin-bottom: 0; }
}
@media (max-width: 900px) {

  /* tighter cells in all the card-style tables */
  table.zebra tbody > tr > td,
  .ui-tabs-panel table tbody > tr > td { padding: 0.6rem; }
  table.zebra thead th { padding: 0 0.6rem; }
  table.zebra thead th:first-child { padding-left: calc(0.6rem + 6px); }

  /* mission info tab: slim label column, drop the spacer cell */
  #one td.cell-label { width: 6.5rem; white-space: normal; }
  #one td.cell-spacer { display: none; }

  /* stats page: give the middle (label) column more room */
  #one table.stats-group th:nth-child(2),
  #one table.stats-group td:nth-child(2) { width: 42%; }

  /* write news item: category/type dropdowns full width */
  .ourea-write select.w-1\/4 { width: 100%; }
}
@media (max-width: 600px) {

  /* post view: stacked details strip gets dividers between rows */
  .ourea-post .post-details div { border-right: 0; border-bottom: 2px solid var(--border); }
  .ourea-post .post-details div:last-child { border-bottom: 0; }
}
/* hide empty single-cell spacer rows in the card tables */
table.zebra tbody > tr > td:only-child:empty,
.ui-tabs-panel table tbody > tr > td:only-child:empty { display: none; }