/* FlokiSys Theme Layer for Bootstrap 3.4.1 */

/* ── AdminLTE compatibility overrides ── */
/* Logo: degradê roxo igual à sidebar */
.main-header .logo {
    background: linear-gradient(135deg, #7c63ba 0%, #3a2068 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.main-header .logo:hover {
    background: linear-gradient(135deg, #8d75cc 0%, #4a2a80 100%) !important;
}

/* Topbar do AdminLTE: fundo branco, texto escuro */
.main-header .navbar.navbar-static-top {
    background-color: #ffffff !important;
    border-bottom: 1px solid #e0e0e0 !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important;
}

.main-header .navbar.navbar-static-top .navbar-nav > li > a {
    color: #333333 !important;
}

.main-header .navbar.navbar-static-top .navbar-nav > li > a:hover,
.main-header .navbar.navbar-static-top .navbar-nav > li > a:focus {
    color: var(--floki-purple, #7f17d3) !important;
    background: transparent !important;
}

/* Login page: fundo escuro sem depender de skin do AdminLTE */
.login-page {
    background: #0a0a0a !important;
}

.login-page .login-box-body {
    background: rgba(0, 0, 0, 0.55) !important;
    border: 1px solid rgba(127, 23, 211, 0.35) !important;
    border-radius: 14px !important;
    color: #c0c0c0 !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.50) !important;
}

.login-page .login-box-body label,
.login-page .login-box-body p,
.login-page .login-box-body a {
    color: #c0c0c0 !important;
}

:root {
    --floki-purple: #7f17d3;
    --floki-purple-dark: #5c0f9d;
    --floki-purple-light: #9c3eff;
    --floki-purple-glow: rgba(127, 23, 211, 0.35);

    --floki-black: #000000;
    --floki-gray-dark: #0a0a0a;
    --floki-gray-medium: #1a1a1a;
    --floki-gray-light: #2a2a2a;
    --floki-gray-border: #333333;

    --floki-white: #ffffff;
    --floki-text: #c0c0c0;

    --floki-radius-sm: 10px;
    --floki-radius-md: 14px;
    --floki-radius-lg: 20px;

    --floki-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.30);
    --floki-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.40);
    --floki-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.50);
    --floki-shadow-purple: 0 4px 24px var(--floki-purple-glow);

    --floki-transition-fast: 0.2s ease;
    --floki-transition-normal: 0.3s ease;
}

/* Tipografia global sem mudar cores — AdminLTE cuida do layout */
body {
    font-family: "PP Neue Machina", "Segoe UI", Roboto, sans-serif;
}

/* Navbar pública (fora do AdminLTE) com estilo Floki escuro */
.navbar.navbar-default.navbar-flokisys {
    background: rgba(0, 0, 0, 0.95);
    border-color: var(--floki-gray-border);
    min-height: 64px;
    transition: transform var(--floki-transition-normal);
}

.navbar-flokisys.navbar-hidden {
    transform: translateY(-100%);
}

.navbar.navbar-default.navbar-flokisys .navbar-brand,
.navbar.navbar-default.navbar-flokisys .navbar-nav > li > a {
    color: #e0e0e0;
}

.navbar.navbar-default.navbar-flokisys .navbar-nav > li > a:hover,
.navbar.navbar-default.navbar-flokisys .navbar-nav > li > a:focus {
    color: var(--floki-purple-light);
    background: transparent;
}

/* Buttons */
.btn.btn-primary.btn-floki-primary {
    background: linear-gradient(135deg, var(--floki-purple) 0%, var(--floki-purple-dark) 100%);
    border-color: transparent;
    color: var(--floki-white);
    border-radius: var(--floki-radius-md);
    box-shadow: var(--floki-shadow-purple);
}

.btn.btn-primary.btn-floki-primary:hover,
.btn.btn-primary.btn-floki-primary:focus {
    background: linear-gradient(135deg, var(--floki-purple-light) 0%, var(--floki-purple) 100%);
    color: var(--floki-white);
}

.btn.btn-default.btn-floki-secondary {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.18);
    color: var(--floki-white);
    border-radius: var(--floki-radius-md);
}

.btn.btn-default.btn-floki-secondary:hover,
.btn.btn-default.btn-floki-secondary:focus {
    background: rgba(255, 255, 255, 0.16);
    color: var(--floki-white);
}

/* Panels / cards */
.panel.panel-default.panel-floki {
    background: rgba(0, 0, 0, 0.55);
    border: 1px solid rgba(127, 23, 211, 0.35);
    border-radius: var(--floki-radius-lg);
    box-shadow: var(--floki-shadow-md);
}

.panel-floki .panel-heading {
    background: rgba(127, 23, 211, 0.10);
    border-bottom: 1px solid rgba(127, 23, 211, 0.25);
    color: var(--floki-white);
}

.panel-floki .panel-body,
.panel-floki .panel-footer {
    color: var(--floki-text);
    background: transparent;
}

/* Forms */
.form-control.input-floki {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--floki-gray-border);
    color: var(--floki-white);
    border-radius: var(--floki-radius-sm);
    box-shadow: none;
}

.form-control.input-floki:focus {
    border-color: var(--floki-purple-light);
    box-shadow: 0 0 0 2px rgba(127, 23, 211, 0.25);
}

/* Alerts */
.alert.alert-floki {
    border-radius: var(--floki-radius-md);
    border: 1px solid transparent;
}

.alert-success.alert-floki {
    background: rgba(46, 204, 113, 0.15);
    border-color: rgba(46, 204, 113, 0.35);
    color: #d9ffe9;
}

.alert-danger.alert-floki {
    background: rgba(231, 76, 60, 0.15);
    border-color: rgba(231, 76, 60, 0.35);
    color: #ffdedd;
}

.alert-info.alert-floki {
    background: rgba(52, 152, 219, 0.16);
    border-color: rgba(52, 152, 219, 0.35);
    color: #dff4ff;
}

/* Modals */
.modal-content.modal-floki {
    background: #0c0c0c;
    border: 1px solid rgba(127, 23, 211, 0.35);
    border-radius: var(--floki-radius-lg);
    color: var(--floki-white);
}

.modal-floki .modal-header,
.modal-floki .modal-footer {
    border-color: rgba(127, 23, 211, 0.20);
}

/* Labels */
.label.label-floki {
    background: rgba(127, 23, 211, 0.20);
    color: var(--floki-white);
    border: 1px solid rgba(127, 23, 211, 0.45);
    border-radius: 999px;
    padding: 0.3em 0.75em;
}

/* Utility helpers */
.floki-section {
    padding: 48px 0;
}

.floki-glass {
    background: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: var(--floki-radius-lg);
    backdrop-filter: blur(8px);
}

/* Mobile guard */
html,
body {
    overflow-x: hidden;
}

/* ============================================================
   Tema global — fundo branco, cards com gradiente FlokiSys
   ============================================================ */

body,
.wrapper,
.content-wrapper,
.right-side {
    background-color: #1a0a2e !important;
    color: #f0eaff !important;
}

/* --- Cards / painéis com gradiente roxo --- */
.box,
.panel,
.card,
.info-box,
.module-card,
.small-box,
.box-primary,
.box-success,
.box-info,
.box-warning,
.box-danger {
    background: linear-gradient(135deg, #7c63ba 0%, #3a2068 100%) !important;
    color: #f0eaff !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 18px rgba(60, 20, 100, 0.18) !important;
}

.box .box-header,
.box .box-title,
.panel .panel-heading,
.panel .panel-title {
    background: transparent !important;
    color: #f0eaff !important;
    border-bottom: 1px solid rgba(202, 184, 235, 0.25) !important;
}

.box .box-body,
.panel .panel-body {
    background: transparent !important;
    color: #f0eaff !important;
}

/* Títulos e textos sobre fundo escuro */
h1, h2, h3, h4, h5, h6 {
    color: #f0eaff;
}

/* Tabelas sobre fundo branco */
.table > thead > tr > th {
    background: linear-gradient(135deg, #7c63ba 0%, #3a2068 100%);
    color: #f0eaff;
    border: none;
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: rgba(124, 99, 186, 0.08);
}

/* Footer oculto */
.main-footer,
.floki-footer {
    display: none !important;
}


/* Esconde completamente a aside original do AdminLTE */
.main-sidebar {
    display: none !important;
}

/* Esconde o header branco superior */
.main-header {
    display: none !important;
}

/* Content wrapper sem margem esquerda + espaço para a barra */
.content-wrapper,
.right-side,
.sidebar-mini .content-wrapper,
.sidebar-mini .right-side,
.sidebar-mini.sidebar-collapse .content-wrapper,
.sidebar-mini.sidebar-collapse .right-side,
body.sidebar-mini .content-wrapper,
body.sidebar-mini.sidebar-collapse .content-wrapper {
    margin-left: 0 !important;
    padding-top: 16px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    padding-bottom: 82px !important;
}

.main-footer {
    margin-left: 0 !important;
    margin-bottom: 60px !important;
}

.sidebar-toggle { display: none !important; }

/* Header hide/show no scroll */
.main-header { transition: transform 0.3s ease; }
.main-header.floki-header-hidden {
    transform: translateY(-100%);
    box-shadow: none !important;
}

/* ============================================================
   Botões laterais de navegação — voltar / avançar
   ============================================================ */

.floki-sidenav {
    position: fixed;
    top: 0;
    bottom: 90px;
    width: 22px;
    height: auto;
    z-index: 1040;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.25s ease, background 0.25s ease;
    padding: 0;
}

.floki-sidenav:hover {
    opacity: 1;
    background: linear-gradient(180deg, rgba(124,99,186,0.18) 0%, rgba(58,32,104,0.32) 100%);
}

@media (pointer: coarse) {
    .floki-sidenav {
        opacity: 0.35;
        width: 22px;
    }
    .floki-sidenav:active {
        opacity: 1;
        background: rgba(124, 99, 186, 0.35);
    }
}

.floki-sidenav-left  { left: 0;  border-radius: 0 12px 12px 0; }
.floki-sidenav-right { right: 0; border-radius: 12px 0 0 12px; }

.floki-sidenav .fa {
    font-size: 14px;
    color: rgba(202, 184, 235, 0.8);
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

.floki-sidenav:hover .fa,
.floki-sidenav:active .fa {
    color: #ffffff;
}

/* --- Bottom bar container --- */
.floki-bottom-nav {
    position: fixed;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    height: 72px;
    z-index: 1050;
    display: inline-flex;
    flex-direction: row;
    align-items: stretch;
    width: auto;
    background: linear-gradient(90deg, #7c63ba 0%, #3a2068 100%);
    box-shadow: 0 4px 32px rgba(42, 7, 68, 0.65);
    border: 1px solid rgba(202, 184, 235, 0.25);
    border-radius: 16px;
    overflow: visible;
    padding: 0 4px;
}

/* --- Logo Floki (primeiro item fixo) --- */
.fbn-logo {
    flex: 0 0 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    border-right: 1px solid rgba(202, 184, 235, 0.2);
}

.fbn-logo-img {
    width: 38px;
    height: 38px;
    object-fit: contain;
    display: block;
}

/* --- Cada item --- */
.fbn-item {
    flex: 0 0 auto;
    position: relative;
    min-width: 68px;
    max-width: 90px;
}

.fbn-user {
    flex: 0 0 auto;
    min-width: 68px;
    max-width: 90px;
    margin-left: auto;
}

/* --- Link principal --- */
.fbn-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 72px;
    padding: 8px 6px;
    gap: 5px;
    text-decoration: none !important;
    color: #f0eaff !important;
    transition: background 0.2s ease;
    overflow: hidden;
}

.fbn-link:hover,
.fbn-link:focus {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff !important;
    text-decoration: none !important;
}

.fbn-active .fbn-link {
    background: rgba(255, 255, 255, 0.25);
    border-top: 3px solid #cab8eb;
}

/* --- Ícones e imagens --- */
.fbn-link > .fa,
.fbn-link > .glyphicon {
    font-size: 22px;
    color: #cab8eb;
    line-height: 1;
}

.fbn-img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.fbn-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(202, 184, 235, 0.6);
}

/* --- Label de texto --- */
.fbn-link > span {
    font-size: 11px;
    line-height: 1.1;
    color: #f0eaff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 80px;
}

/* --- Submenu (abre para cima) --- */
.fbn-submenu {
    display: none;
    position: fixed;
    bottom: 104px;
    min-width: 180px;
    background: #2d1a52;
    border: 1px solid rgba(202, 184, 235, 0.30);
    border-radius: 10px;
    box-shadow: 0 -4px 20px rgba(42, 7, 68, 0.70);
    list-style: none;
    padding: 4px 0;
    margin: 0;
    z-index: 1060;
}

.fbn-submenu-right {
    right: 0;
}

.fbn-treeview.fbn-open > .fbn-submenu {
    display: block;
}

.fbn-submenu-title {
    padding: 8px 16px;
    color: #cab8eb;
    font-size: 11px;
    border-bottom: 1px solid rgba(202, 184, 235, 0.2);
}

.fbn-submenu li a {
    display: block;
    padding: 8px 16px;
    color: #f0eaff !important;
    text-decoration: none !important;
    transition: background 0.2s ease;
}

.fbn-submenu li a:hover {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff !important;
}

/* --- trkCOLLAB submenu compacto por seções --- */
.fbn-trk > .fbn-submenu {
    min-width: 240px;
    max-height: 58vh;
    overflow-y: auto;
    padding: 6px 0;
}

.fbn-trk > .fbn-submenu .fbn-subgroup {
    margin: 0;
}

.fbn-trk > .fbn-submenu .fbn-submenu-title {
    display: block;
    padding: 8px 16px;
    margin: 0;
    cursor: default;
    font-size: 13px;
    font-weight: 700;
    border-bottom: 1px solid rgba(202, 184, 235, 0.18);
}

.fbn-trk > .fbn-submenu .fbn-subgroup-menu {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0 0 4px 0;
}

.fbn-trk > .fbn-submenu .fbn-subgroup:hover > .fbn-subgroup-menu,
.fbn-trk > .fbn-submenu .fbn-subgroup:focus-within > .fbn-subgroup-menu {
    display: block;
}

.fbn-trk > .fbn-submenu .fbn-subgroup-menu a {
    padding-left: 30px;
}

/* --- oeeCOLLAB submenu por máquina (hover abre opções) --- */
.fbn-oee > .fbn-submenu {
    min-width: 270px;
    max-height: 58vh;
    overflow-y: auto;
    padding: 6px 0;
}

.fbn-oee > .fbn-submenu .fbn-subgroup {
    margin: 0;
}

.fbn-oee > .fbn-submenu .fbn-submenu-title {
    display: block;
    padding: 8px 16px;
    margin: 0;
    cursor: default;
    font-size: 13px;
    font-weight: 700;
    border-bottom: 1px solid rgba(202, 184, 235, 0.18);
}

.fbn-oee > .fbn-submenu .fbn-subgroup-menu {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0 0 4px 0;
}

.fbn-oee > .fbn-submenu .fbn-subgroup:hover > .fbn-subgroup-menu,
.fbn-oee > .fbn-submenu .fbn-subgroup:focus-within > .fbn-subgroup-menu {
    display: block;
}

.fbn-oee > .fbn-submenu .fbn-subgroup-menu a {
    padding-left: 30px;
}

@media (max-width: 767px) {
    .fbn-item { min-width: 44px; }
    .fbn-link > span { font-size: 8px; }
    .navbar.navbar-default.navbar-flokisys { min-height: 56px; }
    .floki-section { padding: 32px 0; }
    .floki-bottom-nav { bottom: 6px; }
}

/* --- Telas muito pequenas (≤ 390px, ex: 360px) --- */
@media (max-width: 390px) {
    .floki-bottom-nav {
        height: 58px;
        padding: 0 2px;
        border-radius: 12px;
    }
    .fbn-item {
        min-width: 36px;
        max-width: 52px;
    }
    .fbn-logo {
        flex: 0 0 46px !important;
        min-width: 46px !important;
        max-width: 46px !important;
    }
    .fbn-logo-img {
        width: 28px;
        height: 28px;
    }
    .fbn-link {
        height: 58px;
        padding: 6px 4px;
        gap: 3px;
    }
    .fbn-link > .fa,
    .fbn-link > .glyphicon {
        font-size: 17px;
    }
    .fbn-img {
        width: 22px;
        height: 22px;
    }
    .fbn-avatar {
        width: 28px;
        height: 28px;
    }
    .fbn-link > span {
        font-size: 7px;
    }
    .fbn-user {
        min-width: 36px;
        max-width: 52px;
    }
    .fbn-submenu {
        bottom: 84px;
    }
}

@supports (bottom: env(safe-area-inset-bottom)) {
  @media (max-width: 767px) {
    .floki-bottom-nav { bottom: max(6px, env(safe-area-inset-bottom)); }
  }
}

/* ── collab-text-tune — design system trkCOLLAB (centralizado aqui) ── */
.collab-text-tune {
  line-height: 1.45;
}
.collab-text-tune .box.box-solid,
.collab-text-tune .box.box-solid .table,
.collab-text-tune .box.box-solid .table th,
.collab-text-tune .box.box-solid .table td,
.collab-text-tune .box.box-solid label,
.collab-text-tune .box.box-solid p,
.collab-text-tune .box.box-solid small,
.collab-text-tune .box.box-solid .box-title {
  color: #f7f7fb !important;
}
.collab-text-tune .box-title {
  font-size: 19px;
  font-weight: 700;
}
.collab-text-tune .table,
.collab-text-tune .table th,
.collab-text-tune .table td,
.collab-text-tune label,
.collab-text-tune .form-control,
.collab-text-tune select,
.collab-text-tune input,
.collab-text-tune textarea,
.collab-text-tune .btn,
.collab-text-tune .badge,
.collab-text-tune .label {
  font-size: 14px;
}
.collab-text-tune .table th,
.collab-text-tune .badge,
.collab-text-tune .label {
  font-weight: 700 !important;
}
.collab-text-tune [style*="color:white"],
.collab-text-tune [style*="color: white"],
.collab-text-tune [style*="color:#fff"],
.collab-text-tune [style*="color: #fff"] {
  color: #f7f7fb !important;
}
.collab-text-tune [style*="font-size:11px"],
.collab-text-tune [style*="font-size: 11px"] { font-size: 13px !important; }
.collab-text-tune [style*="font-size:12px"],
.collab-text-tune [style*="font-size: 12px"] { font-size: 14px !important; }
.collab-text-tune [style*="font-size:13px"],
.collab-text-tune [style*="font-size: 13px"] { font-size: 14px !important; }
.collab-text-tune .box-body {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.collab-text-tune .modal-dialog {
  width: auto;
  max-width: 96vw;
  margin: 20px auto;
}
@media (max-width: 991px) {
  .collab-text-tune h3 { font-size: 24px !important; }
}
@media (max-width: 767px) {
  .collab-text-tune { overflow-x: hidden; }
  .collab-text-tune h3 { font-size: 22px !important; line-height: 1.25; }
  .collab-text-tune .box-body { padding: 12px !important; }
  .collab-text-tune [style*="display:flex"] { flex-wrap: wrap !important; }
  .collab-text-tune input,
  .collab-text-tune select,
  .collab-text-tune textarea { width: 100%; max-width: 100%; min-width: 0 !important; }
  .collab-text-tune table { min-width: 640px; }
}
