._icon_j0a06_1 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  flex-shrink: 0;
  line-height: 0;
}
._navbar_1408f_1 {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 0 2rem;
  height: 56px;
  background: #0a0a0a;
  border-bottom: 1px solid #1a1a1a;
  position: sticky;
  top: 0;
  z-index: 100;
}

._brand_1408f_14 {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #fff;
  font-weight: 800;
  font-size: 1rem;
  margin-right: 1rem;
}

._brandText_1408f_25 { color: #fff; }
._brandAdmin_1408f_26 {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #6C5CE7;
  background: rgba(108, 92, 231, 0.1);
  padding: 2px 6px;
  border-radius: 3px;
}

._links_1408f_37 {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
}

._link_1408f_37 {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #888;
  text-decoration: none;
  transition: all 0.15s;
}

._link_1408f_37:hover { color: #fff; background: rgba(255, 255, 255, 0.04); }

._linkActive_1408f_59 {
  color: #fff;
  background: rgba(108, 92, 231, 0.1);
}

._linkLabel_1408f_65 {}

._right_1408f_67 {
  display: flex;
  align-items: center;
  gap: 1rem;
}

._user_1408f_73 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: #888;
}

._logoutBtn_1408f_81 {
  display: flex;
  align-items: center;
  padding: 6px;
  background: none;
  border: none;
  color: #555;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.15s;
}

._logoutBtn_1408f_81:hover { color: #e74c3c; background: rgba(231, 76, 60, 0.08); }

@media (max-width: 700px) {
  ._navbar_1408f_1 { padding: 0 1rem; gap: 0.5rem; }
  ._linkLabel_1408f_65 { display: none; }
  ._brand_1408f_14 { margin-right: 0.5rem; }
  ._brandText_1408f_25 { display: none; }
  ._user_1408f_73 { display: none; }
}
._backdrop_1h2qv_1 {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  animation: _fadeIn_1h2qv_1 0.15s ease;
  padding: 1rem;
}

@keyframes _fadeIn_1h2qv_1 {
  from { opacity: 0; }
  to { opacity: 1; }
}

._modal_1h2qv_19 {
  background: #111;
  border: 1px solid #222;
  border-radius: 14px;
  padding: 1.75rem;
  width: 100%;
  max-width: 400px;
  animation: _slideUp_1h2qv_1 0.2s ease;
}

@keyframes _slideUp_1h2qv_1 {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

._header_1h2qv_34 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #1a1a1a;
}

._title_1h2qv_43 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

._closeBtn_1h2qv_50 {
  background: none;
  border: none;
  color: #555;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: color 0.15s;
}

._closeBtn_1h2qv_50:hover {
  color: #fff;
}

._message_1h2qv_65 {
  color: #888;
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

._actions_1h2qv_72 {
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  padding-top: 1.25rem;
  border-top: 1px solid #1a1a1a;
}

._cancelBtn_1h2qv_80 {
  padding: 9px 18px;
  background: #1a1a1a;
  color: #ccc;
  border: 1px solid #333;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

._cancelBtn_1h2qv_80:hover {
  background: #222;
  color: #fff;
  border-color: #555;
}

._confirmBtn_1h2qv_99 {
  padding: 9px 18px;
  background: linear-gradient(135deg, #6C5CE7, #00B894);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

._confirmBtn_1h2qv_99:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(108, 92, 231, 0.3);
}

._confirmBtnDanger_1h2qv_117 {
  padding: 9px 18px;
  background: #e74c3c;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

._confirmBtnDanger_1h2qv_117:hover {
  background: #c0392b;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(231, 76, 60, 0.3);
}

@media (max-width: 600px) {
  ._modal_1h2qv_19 { max-width: 100%; margin: 0 0.5rem; padding: 1.25rem; border-radius: 12px; }
}
._default_140r8_1 {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: rgba(255, 255, 255, 0.05);
  color: #888;
}

._active_140r8_13 {
  background: rgba(0, 184, 148, 0.1);
  color: #00B894;
}

._pastDue_140r8_19 {
  background: rgba(245, 183, 74, 0.1);
  color: #f5b74a;
}

._canceled_140r8_25 {
  background: rgba(231, 76, 60, 0.1);
  color: #e74c3c;
}
._page_1tvtl_1 { min-height: 100vh; background: #050505; }
._main_1tvtl_2 { max-width: 900px; margin: 0 auto; padding: 2rem; }

._backLink_1tvtl_4 { display: inline-flex; align-items: center; gap: 6px; color: #888; text-decoration: none; font-size: 0.85rem; font-weight: 600; margin-bottom: 1.5rem; transition: color 0.15s; }
._backLink_1tvtl_4:hover { color: #fff; }
._backArrow_1tvtl_6 { transform: rotate(180deg); }

._loading_1tvtl_8 { display: flex; align-items: center; gap: 12px; justify-content: center; padding: 4rem; color: #888; }
._spinner_1tvtl_9 { width: 20px; height: 20px; border: 2px solid #222; border-top: 2px solid #6C5CE7; border-radius: 50%; animation: _spin_1tvtl_9 0.8s linear infinite; }
@keyframes _spin_1tvtl_9 { to { transform: rotate(360deg); } }
._error_1tvtl_11 { text-align: center; padding: 4rem; color: #e74c3c; }

._header_1tvtl_13 {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 12px;
  margin-bottom: 2rem;
}

._avatar_1tvtl_24 {
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(108, 92, 231, 0.1);
  border-radius: 50%;
  flex-shrink: 0;
}

._name_1tvtl_32 { font-size: 1.2rem; font-weight: 800; color: #fff; margin: 0 0 4px; }
._meta_1tvtl_33 { display: flex; flex-wrap: wrap; gap: 1rem; font-size: 0.8rem; color: #666; }

._sectionTitle_1tvtl_35 { display: flex; align-items: center; gap: 8px; font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: 1rem; }

._subList_1tvtl_37 { display: flex; flex-direction: column; gap: 0.75rem; }

._subCard_1tvtl_39 {
  padding: 1rem 1.25rem;
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 10px;
}

._subRow_1tvtl_46 { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.5rem; }
._subPlan_1tvtl_47 { color: #ccc; font-weight: 600; font-size: 0.9rem; }
._subDate_1tvtl_48 { color: #666; font-size: 0.8rem; margin-left: auto; }

._subActions_1tvtl_50 { display: flex; gap: 0.5rem; margin-top: 0.5rem; }

._actionBtn_1tvtl_52 {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 12px; background: #1a1a1a; border: 1px solid #333;
  border-radius: 6px; color: #ccc; font-size: 0.75rem; font-weight: 600;
  cursor: pointer; font-family: inherit; transition: all 0.15s;
}
._actionBtn_1tvtl_52:hover { background: #222; border-color: #555; color: #fff; }

._actionBtnDanger_1tvtl_60 { }
._actionBtnDanger_1tvtl_60:hover { background: rgba(231, 76, 60, 0.08); border-color: #e74c3c; color: #e74c3c; }

._empty_1tvtl_63 { color: #555; font-size: 0.9rem; }

._invoiceList_1tvtl_65 {
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 10px;
  overflow: hidden;
}

._invoiceRow_1tvtl_72 {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 1rem;
  padding: 10px 16px;
  font-size: 0.85rem;
  color: #ccc;
  border-bottom: 1px solid #111;
}

._invoiceRow_1tvtl_72:last-child { border-bottom: none; }

._badgePaid_1tvtl_84 { padding: 2px 8px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; background: rgba(0, 184, 148, 0.1); color: #00B894; }
._badgeUnpaid_1tvtl_85 { padding: 2px 8px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; background: rgba(245, 183, 74, 0.1); color: #f5b74a; }
._wrapper_x44rb_1 { overflow: hidden; border-radius: 12px; border: 1px solid #1a1a1a; }

._tableWrap_x44rb_3 { overflow-x: auto; }

._table_x44rb_3 { width: 100%; border-collapse: collapse; }

._headRow_x44rb_7 { background: #0d0d0d; }

._headCell_x44rb_9 {
  padding: 10px 16px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #666;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid #1a1a1a;
}

._bodyRow_x44rb_21 { transition: background 0.1s; }
._bodyRow_x44rb_21:not(:last-child) { border-bottom: 1px solid #111; }

._bodyRowClickable_x44rb_24 {
  cursor: pointer;
}

._bodyRowClickable_x44rb_24:hover { background: rgba(255, 255, 255, 0.02); }

._bodyCell_x44rb_31 {
  padding: 12px 16px;
  font-size: 0.85rem;
  color: #ccc;
  white-space: nowrap;
}

._emptyCell_x44rb_38 {
  padding: 3rem 1rem;
  text-align: center;
  color: #555;
  font-size: 0.9rem;
}

._loadMore_x44rb_45 { padding: 1rem; text-align: center; border-top: 1px solid #1a1a1a; }

._loadMoreBtn_x44rb_47 {
  padding: 8px 24px;
  background: #1a1a1a;
  border: 1px solid #333;
  border-radius: 6px;
  color: #ccc;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}

._loadMoreBtn_x44rb_47:hover { background: #222; border-color: #555; color: #fff; }
._loadMoreBtn_x44rb_47:disabled { opacity: 0.5; cursor: wait; }
._page_9a7v0_1 { min-height: 100vh; background: #050505; }
._main_9a7v0_2 { max-width: 1100px; margin: 0 auto; padding: 2rem; }
._pageTitle_9a7v0_3 { font-size: 1.5rem; font-weight: 800; color: #fff; margin-bottom: 1.5rem; }
._loading_9a7v0_4 { display: flex; align-items: center; gap: 12px; justify-content: center; padding: 4rem; color: #888; }
._spinner_9a7v0_5 { width: 20px; height: 20px; border: 2px solid #222; border-top: 2px solid #6C5CE7; border-radius: 50%; animation: _spin_9a7v0_5 0.8s linear infinite; }
@keyframes _spin_9a7v0_5 { to { transform: rotate(360deg); } }
._error_9a7v0_7 { text-align: center; padding: 4rem; color: #e74c3c; }
._page_1s6zi_1 {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: #050505;
}

._card_1s6zi_10 {
  background: #111;
  border: 1px solid #222;
  border-radius: 16px;
  padding: 3rem 2.5rem;
  max-width: 400px;
  width: 100%;
  text-align: center;
}

._icon_1s6zi_20 { margin-bottom: 1.5rem; }

._title_1s6zi_22 {
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 0.5rem;
}

._desc_1s6zi_29 {
  color: #888;
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}

._error_1s6zi_36 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #e74c3c;
  font-size: 0.85rem;
  margin-bottom: 1.5rem;
  padding: 10px;
  background: rgba(231, 76, 60, 0.08);
  border-radius: 8px;
}

._btn_1s6zi_49 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px;
  background: linear-gradient(135deg, #6C5CE7, #00B894);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
}

._btn_1s6zi_49:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(108, 92, 231, 0.3); }
._btn_1s6zi_49:disabled { opacity: 0.7; cursor: wait; transform: none; box-shadow: none; }
._page_85rse_1 { min-height: 100vh; background: #050505; }
._main_85rse_2 { max-width: 1100px; margin: 0 auto; padding: 2rem; }
._pageTitle_85rse_3 { font-size: 1.5rem; font-weight: 800; color: #fff; margin-bottom: 1.5rem; }

._loading_85rse_5 { display: flex; align-items: center; gap: 12px; justify-content: center; padding: 4rem; color: #888; }
._spinner_85rse_6 { width: 20px; height: 20px; border: 2px solid #222; border-top: 2px solid #6C5CE7; border-radius: 50%; animation: _spin_85rse_6 0.8s linear infinite; }
@keyframes _spin_85rse_6 { to { transform: rotate(360deg); } }
._error_85rse_8 { text-align: center; padding: 4rem; color: #e74c3c; }

._statGrid_85rse_10 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; }

._statCard_85rse_12 {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 1.25rem;
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 12px;
}

._statIcon_85rse_22 { flex-shrink: 0; margin-top: 2px; }
._statContent_85rse_23 { flex: 1; }
._statLabel_85rse_24 { color: #888; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
._statValue_85rse_25 { color: #fff; font-size: 1.5rem; font-weight: 800; margin: 0; }
._statSub_85rse_26 { color: #555; font-size: 0.75rem; }

._section_85rse_28 { margin-bottom: 2rem; }
._sectionTitle_85rse_29 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1rem;
}

._chartWrap_85rse_39 {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 160px;
  padding: 1rem;
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 12px;
}

._bar_85rse_50 {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  min-width: 0;
}

._barFill_85rse_60 {
  width: 100%;
  max-width: 24px;
  background: linear-gradient(180deg, #6C5CE7, #00B894);
  border-radius: 3px 3px 0 0;
  min-height: 2px;
  transition: height 0.3s;
}

._barLabel_85rse_69 {
  font-size: 0.55rem;
  color: #555;
  margin-top: 6px;
  white-space: nowrap;
}

._recentList_85rse_76 {
  background: #111;
  border: 1px solid #1a1a1a;
  border-radius: 12px;
  overflow: hidden;
}

._recentItem_85rse_83 {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 12px 16px;
  border-bottom: 1px solid #111;
}

._recentItem_85rse_83:last-child { border-bottom: none; }
._recentName_85rse_92 { flex: 1; color: #ccc; font-size: 0.85rem; font-weight: 600; }
._recentDate_85rse_93 { color: #555; font-size: 0.8rem; }
._badgeActive_85rse_94 { padding: 2px 8px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; background: rgba(0, 184, 148, 0.1); color: #00B894; }
._badgeCanceled_85rse_95 { padding: 2px 8px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; background: rgba(231, 76, 60, 0.1); color: #e74c3c; }

@media (max-width: 800px) {
  ._statGrid_85rse_10 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 500px) {
  ._statGrid_85rse_10 { grid-template-columns: 1fr; }
  ._main_85rse_2 { padding: 1rem; }
}
._page_1hzey_1 { min-height: 100vh; background: #050505; }
._main_1hzey_2 { max-width: 1100px; margin: 0 auto; padding: 2rem; }
._pageTitle_1hzey_3 { font-size: 1.5rem; font-weight: 800; color: #fff; margin: 0; }

._header_1hzey_5 { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }

._filter_1hzey_7 {
  padding: 8px 14px;
  background: #111;
  border: 1px solid #222;
  border-radius: 8px;
  color: #ccc;
  font-size: 0.85rem;
  font-family: inherit;
  cursor: pointer;
}

._filter_1hzey_7:focus { outline: none; border-color: #6C5CE7; }

._loading_1hzey_20 { display: flex; align-items: center; gap: 12px; justify-content: center; padding: 4rem; color: #888; }
._spinner_1hzey_21 { width: 20px; height: 20px; border: 2px solid #222; border-top: 2px solid #6C5CE7; border-radius: 50%; animation: _spin_1hzey_21 0.8s linear infinite; }
@keyframes _spin_1hzey_21 { to { transform: rotate(360deg); } }
._error_1hzey_23 { text-align: center; padding: 4rem; color: #e74c3c; }

._actionBtn_1hzey_25 {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; background: #1a1a1a; border: 1px solid #333;
  border-radius: 6px; color: #ccc; cursor: pointer; transition: all 0.15s;
}
._actionBtn_1hzey_25:hover { background: #222; border-color: #555; color: #fff; }

._actionBtnDanger_1hzey_32 { }
._actionBtnDanger_1hzey_32:hover { background: rgba(231, 76, 60, 0.08); border-color: #e74c3c; color: #e74c3c; }
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif; font-size: 16px; line-height: 1.5; color: #ededed; background: #050505; -webkit-font-smoothing: antialiased; }

body { min-height: 100vh; }

#app { transition: opacity 0.3s ease; }

.fade-out { opacity: 0.4; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes swoosh { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
