/**
 * Public module pages inside the figi theme chrome
 * ================================================
 * Loaded by app/views/layouts/general_page.php - the guest-only layout used by
 * client::faq() / terms() / cookie_policy(), services::index() (public
 * catalogue) and api::docs().
 *
 * The module views were written against the legacy dashboard stylesheet
 * (assets/css/core.css, a Tabler build). That file is deliberately no longer
 * loaded on these pages: it is a second copy of Bootstrap plus the old admin
 * skin, and mixing two Bootstrap builds restyles everything twice. This file
 * re-provides the handful of panel classes those views still use, restyled to
 * match the figi landing page (typography, colours, card look).
 *
 * Everything is scoped under `.gp-main`, so the landing page, the auth
 * screens and the dashboard are untouched.
 */

/* ------------------------------------------------------------------ *
 *  Layout shell
 * ------------------------------------------------------------------ */
.gp-main{
  padding: 130px 0 60px;   /* clears fixed reseller bar (45px) + nav (65px) */
  background: #fff;
}
.gp-main .container{
  max-width: 1140px;
}
@media (max-width: 991px){
  .gp-main{ padding-top: 120px; }
}
@media (max-width: 575px){
  .gp-main{ padding-top: 112px; }
}

/* ------------------------------------------------------------------ *
 *  Page headings
 * ------------------------------------------------------------------ */
.gp-main .page-header{ margin: 0 0 1.25rem; }
.gp-main .page-header .page-title{ margin-bottom: 0; }
.gp-main .page-title{ color: #141a24; }
.gp-main .page-title h1,
.gp-main h1.page-title{
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 .5rem;
  color: #141a24;
}
.gp-main .page-title .add-new{ color: #2563eb; }

/* ------------------------------------------------------------------ *
 *  Cards (figi look)
 * ------------------------------------------------------------------ */
.gp-main .card{
  background: #fff;
  border: 1px solid #edf0f5;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .05);
  margin-bottom: 1.25rem;
}
.gp-main .card-header{
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #fff;
  border-bottom: 1px solid #edf0f5;
  padding: 1rem 1.25rem;
}
.gp-main .card-title{
  margin: 0;
  font-size: .98rem;
  font-weight: 600;
  color: #1f2633;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.gp-main .card-title[data-toggle="card-collapse"]{ cursor: pointer; }
.gp-main .card-body{ padding: 1.25rem; }
.gp-main .card-footer{
  background: #fff;
  border-top: 1px solid #edf0f5;
  padding: 1rem 1.25rem;
}

/* Collapsed state - behaviour parity with assets/js/core.js. */
.gp-main .card-collapsed > :not(.card-header):not(.card-status){ display: none; }
.gp-main .platform-category .card-collapsed .card-header{ border-bottom: 0; }

/* Header options (collapse / remove controls). */
.gp-main .card-options{
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.gp-main .card-options a{ color: #98a2b3; text-decoration: none; }
.gp-main .card-options a:hover{ color: #2563eb; }

/* ------------------------------------------------------------------ *
 *  Badges / chips
 * ------------------------------------------------------------------ */
.gp-main .badge{
  color: #fff;
  padding: .35em .7em;
  font-weight: 600;
  font-size: .74rem;
  border-radius: 999px;
  line-height: 1.2;
}
.gp-main .badge.badge-warning{ color: #664d03; }

/* Question chip in the FAQ headers. */
.gp-main .bg-question{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(37, 99, 235, .12);
  color: #2563eb;
  font-size: .8rem;
}

/* ------------------------------------------------------------------ *
 *  Tables (services catalogue, API documentation)
 * ------------------------------------------------------------------ */
.gp-main .table{ font-size: .9rem; }
.gp-main .table thead th{ font-weight: 600; color: #5a6270; border-top: 0; }
.gp-main .card-table{ margin-bottom: 0; }
.gp-main .card-table thead th{
  background: #fafbfd;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #8a93a2;
}
.gp-main .table-vcenter td,
.gp-main .table-vcenter th{ vertical-align: middle; }
.gp-main .table-outline{ border-color: #edf0f5; }

/* ------------------------------------------------------------------ *
 *  Catalogue shells (lazy loading placeholder)
 * ------------------------------------------------------------------ */
.gp-main .dimmer{ position: relative; }
.gp-main .dimmer .loader{
  display: none;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 22px;
  height: 22px;
  border: 2px solid #e5eaf2;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: gp-spin .7s linear infinite;
}
.gp-main .dimmer.active{ min-height: 90px; }
.gp-main .dimmer.active .loader{ display: block; }
@keyframes gp-spin{
  to{ transform: rotate(360deg); }
}
.gp-main .platform-category .card{ margin-bottom: .9rem; }

/* ------------------------------------------------------------------ *
 *  Empty states
 * ------------------------------------------------------------------ */
.gp-main .data-empty{ padding: 2.5rem 1rem; color: #98a2b3; }
.gp-main .data-empty .content .title{ color: #98a2b3; padding-top: .5rem; }
.gp-main .data-empty .img{ opacity: .85; }

/* ------------------------------------------------------------------ *
 *  Buttons / misc
 * ------------------------------------------------------------------ */
.gp-main .btn-round,
.gp-main .round{ border-radius: 50rem; }
.gp-main .btn-primary{ background: #2563eb; border-color: #2563eb; }
.gp-main .btn-primary:hover,
.gp-main .btn-primary:focus{ background: #1d4fd7; border-color: #1d4fd7; }
.gp-main .btn-info{ background: #2563eb; border-color: #2563eb; }
.gp-main .btn-info:hover,
.gp-main .btn-info:focus{ background: #1d4fd7; border-color: #1d4fd7; }

/* .note block (API docs intro). */
.gp-main .note{
  background: #f4f8ff;
  border-left: 3px solid #2563eb;
  border-radius: 8px;
  padding: .8rem 1rem;
  color: #4b5563;
}
.gp-main .api-documentation pre{ border-radius: 10px; }

/* Legacy spacing helpers used by the module views (assets/css/util.css). */
.gp-main .m-b-30{ margin-bottom: 30px !important; }
.gp-main .m-b-20{ margin-bottom: 20px !important; }
.gp-main .m-t-5{ margin-top: 5px !important; }

/* ------------------------------------------------------------------ *
 *  Feather-class icons mapped onto the Font Awesome 4 font
 * ------------------------------------------------------------------ *
 * The module views emit `fe fe-*` glyph names, but only a minimalist
 * subset of that webfont was ever shipped. The FA4 webfont is already
 * on the page (loaded by the layout for the `fa fa-*` icons), so the
 * feather names are remapped to their FA4 equivalents instead of
 * loading a second icon font.
 */
.gp-main .fe{
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  display: inline-block;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}
.gp-main .fe-chevron-up:before{ content: "\f077"; }
.gp-main .fe-chevron-down:before{ content: "\f078"; }
.gp-main .fe-chevron-right:before{ content: "\f054"; }
.gp-main .fe-x:before{ content: "\f00d"; }
.gp-main .fe-help-circle:before{ content: "\f059"; }
.gp-main .fe-info:before{ content: "\f05a"; }
.gp-main .fe-menu:before{ content: "\f0c9"; }
.gp-main .fe-more-vertical:before{ content: "\f142"; }
.gp-main .fe-trash:before{ content: "\f1f8"; }
.gp-main .fe-trash-2:before{ content: "\f1f8"; }
.gp-main .fe-edit:before{ content: "\f044"; }
.gp-main .fe-book-open:before{ content: "\f02d"; }
.gp-main .fe-check-square:before{ content: "\f14a"; }
.gp-main .fe-x-square:before{ content: "\f096"; }
.gp-main .fe-plus-square:before{ content: "\f0fe"; }
.gp-main .fe-bell:before{ content: "\f0f3"; }
.gp-main .fe-eye:before{ content: "\f06e"; }
.gp-main .fe-shopping-cart:before{ content: "\f07a"; }
.gp-main .fe-inbox:before{ content: "\f01c"; }
.gp-main .fe-file-text:before{ content: "\f15c"; }

/* Collapsed cards flip the header chevron (parity with core.css). */
.gp-main .card-collapsed .card-options-collapse .fe-chevron-up:before{ content: "\f078"; }
