/*
 * Compact Typography - Professional Data-Focused Design
 * Applies compact, professional typography across the IRIS application
 * for improved information density and modern enterprise appearance.
 */

/* ============================================
   MODAL DIALOG IMPROVEMENTS
   ============================================ */

/* Modal titles - more compact */
.modal-title,
.modal .modal-title,
.modal-header h4,
.modal-header h5 {
    font-size: 0.95rem !important;
    font-weight: 600;
    line-height: 1.4;
}

/* Modal subtitles and small text */
.modal small,
.modal .text-muted {
    font-size: 12px !important;
}

/* Modal body text */
.modal-body p {
    font-size: 13px;
    line-height: 1.5;
}

/* Modal form labels */
.modal label {
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 4px;
}

/* Modal help text */
.modal .form-text,
.modal .help-block {
    font-size: 11px;
    line-height: 1.4;
}

/* ============================================
   DATATABLE IMPROVEMENTS
   ============================================ */

/* DataTable headers - compact and professional */
.dataTable thead th,
.table thead th {
    font-size: 12px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 10px 12px !important;
    line-height: 1.3;
}

/* DataTable cells - slightly smaller */
.dataTable tbody td,
.table tbody td {
    font-size: 13px !important;
    padding: 8px 12px !important;
    line-height: 1.4;
}

/* DataTable footer */
.dataTable tfoot th,
.table tfoot th {
    font-size: 12px !important;
    padding: 8px 12px !important;
}

/* Pagination controls */
.dataTables_paginate,
.pagination {
    font-size: 12px;
}

.dataTables_info,
.dataTables_length {
    font-size: 12px !important;
}

/* Search box */
.dataTables_filter input,
.dataTables_length select {
    font-size: 13px !important;
}

/* DataTable buttons */
.dt-buttons .btn,
.dataTables_wrapper .btn {
    font-size: 12px;
    padding: 6px 12px;
}

/* ============================================
   CARD HEADER IMPROVEMENTS
   ============================================ */

/* Card titles - more compact */
.card-title,
.card .card-title {
    font-size: 0.95rem !important;
    font-weight: 600;
    line-height: 1.4;
}

/* Card headers */
.card-header {
    padding: 14px 20px;
}

/* Card subtitles */
.card-subtitle,
.card .text-faded {
    font-size: 12px !important;
}

/* Card small text */
.card small {
    font-size: 11px !important;
}

/* ============================================
   FORM ELEMENT IMPROVEMENTS
   ============================================ */

/* Input fields */
.form-control {
    font-size: 13px !important;
    padding: 8px 12px;
}

.form-control-sm {
    font-size: 12px !important;
    padding: 6px 10px;
}

/* Select dropdowns */
select.form-control,
.selectpicker {
    font-size: 13px !important;
}

/* Textareas */
textarea.form-control {
    font-size: 13px !important;
    line-height: 1.5;
}

/* Form labels (global) */
label {
    font-size: 12px;
    font-weight: 500;
}

/* Checkbox and radio labels */
.form-check-label {
    font-size: 13px;
}

/* ============================================
   GENERAL IMPROVEMENTS
   ============================================ */

/* Badge text */
.badge {
    font-size: 10px !important;
    padding: 4px 8px;
    font-weight: 600;
}

/* Badge pill */
.badge-pill {
    font-size: 10px !important;
    padding: 4px 10px;
}

/* Small text elements */
small,
.small {
    font-size: 11px !important;
}

/* Code blocks */
code {
    font-size: 12px !important;
}

pre {
    font-size: 12px !important;
    line-height: 1.4;
}

pre code {
    font-size: 12px !important;
}

/* Breadcrumbs */
.breadcrumb {
    font-size: 12px;
}

.breadcrumb-item {
    font-size: 12px;
}

/* Nav pills/tabs */
.nav-pills .nav-link,
.nav-tabs .nav-link {
    font-size: 13px;
    padding: 8px 16px;
}

/* Dropdowns */
.dropdown-item {
    font-size: 13px;
    padding: 8px 16px;
}

.dropdown-header {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============================================
   LIST GROUP IMPROVEMENTS
   ============================================ */

.list-group-item {
    font-size: 13px;
    padding: 10px 16px;
}

.list-group-item-heading {
    font-size: 14px;
    font-weight: 600;
}

.list-group-item-text {
    font-size: 12px;
    line-height: 1.4;
}

/* ============================================
   ALERT/NOTIFICATION IMPROVEMENTS
   ============================================ */

.alert {
    font-size: 13px;
    padding: 12px 16px;
}

.alert-heading {
    font-size: 14px;
    font-weight: 600;
}

/* ============================================
   TOOLTIP & POPOVER IMPROVEMENTS
   ============================================ */

.tooltip-inner {
    font-size: 12px;
    padding: 6px 10px;
}

.popover {
    font-size: 13px;
}

.popover-header {
    font-size: 13px;
    font-weight: 600;
}

.popover-body {
    font-size: 12px;
}

/* ============================================
   SPECIFIC CASE PAGE IMPROVEMENTS
   ============================================ */

/* Case navigation tabs */
.page-navigation .nav-link {
    font-size: 13px !important;
    padding: 10px 16px;
}

/* Case header info */
.page-inner h5 {
    font-size: 13px !important;
}

/* Timeline event cards - if not already styled */
.timeline-event-title {
    font-size: 14px;
    font-weight: 600;
}

.timeline-event-description {
    font-size: 13px;
    line-height: 1.5;
}

/* ============================================
   DASHBOARD SPECIFIC IMPROVEMENTS
   ============================================ */

/* Dashboard card stats */
.card-stats .card-title {
    font-size: 0.875rem !important;
}

.card-stats .h1,
.card-stats h1 {
    font-size: 2rem !important;
}

.card-stats .h2,
.card-stats h2 {
    font-size: 1.5rem !important;
}

/* ============================================
   SIDEBAR/NAVIGATION IMPROVEMENTS
   Compact professional hierarchy with font weight
   ============================================ */

/* Main menu items - Ultra-compact with medium weight */
.sidebar .nav > .nav-item > a,
.sidebar .nav > li > a {
    font-weight: 500 !important;
    letter-spacing: 0.005em;
    padding: 7px 14px !important;
    transition: all 0.15s ease;
}

/* Menu item text (paragraph and span) - Sleek cyber aesthetic - Maximum specificity */
html body .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item > a p,
html body .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item > a span,
html body .sidebar.sidebar-style-2 .nav > .nav-item > a p,
html body .sidebar.sidebar-style-2 .nav > .nav-item > a span,
html body .sidebar .sidebar-wrapper .nav.nav-primary > .nav-item > a p,
html body .sidebar .sidebar-wrapper .nav.nav-primary > .nav-item > a span,
html body .sidebar .nav.nav-primary > .nav-item > a p,
html body .sidebar .nav.nav-primary > .nav-item > a span,
html body .sidebar .nav > .nav-item > a p,
html body .sidebar .nav > .nav-item > a span,
.sidebar .sidebar-wrapper .nav.nav-primary > .nav-item > a p,
.sidebar .sidebar-wrapper .nav.nav-primary > .nav-item > a span,
.sidebar .nav.nav-primary > .nav-item > a p,
.sidebar .nav.nav-primary > .nav-item > a span,
.sidebar .nav > .nav-item > a p,
.sidebar .nav > .nav-item > a span,
.sidebar[data-background-color="white"] .nav > .nav-item a p,
.sidebar[data-background-color="white"] .nav > .nav-item a span,
body .sidebar .nav > .nav-item a p,
body .sidebar .nav > .nav-item a span {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-weight: 400 !important;
    font-size: 12px !important;
    letter-spacing: 0.5px;
    margin-bottom: 0 !important;
    line-height: 1.3 !important;
    color: #00d9ff !important;
    text-transform: none;
}

/* Active menu item - Cyan glow cyber effect - Maximum specificity */
.sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a p,
.sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a span,
.sidebar .sidebar-wrapper .nav.nav-primary > .nav-item.active > a p,
.sidebar .sidebar-wrapper .nav.nav-primary > .nav-item.active > a span,
.sidebar .nav.nav-primary > .nav-item.active > a p,
.sidebar .nav.nav-primary > .nav-item.active > a span,
.sidebar .nav > .nav-item.active > a p,
.sidebar .nav > .nav-item.active > a span,
body .sidebar .nav > .nav-item.active > a p,
body .sidebar .nav > .nav-item.active > a span,
.sidebar .nav > .nav-item.active > a {
    font-weight: 500 !important;
    color: #ffffff !important;
    text-shadow: 0 0 10px rgba(0, 217, 255, 0.8), 0 0 20px rgba(0, 217, 255, 0.4);
}

/* Active menu item link - Override white */
.sidebar .nav > .nav-item.active > a,
body .sidebar .nav > .nav-item.active > a,
.sidebar .sidebar-wrapper .nav > .nav-item.active > a {
    color: #ffa500 !important;
}

/* Submenu items - Always gold - High specificity */
.sidebar .sidebar-wrapper .nav .nav-item .collapse .nav-link,
.sidebar .nav .nav-item .collapse .nav-link,
.sidebar .nav > .nav-item .collapse li a,
body .sidebar .nav > .nav-item .collapse li a,
.sidebar .nav > .nav-item .collapse li a .link-collapse {
    font-size: 11px !important;
    font-weight: 400 !important;
    padding: 5px 14px 5px 40px !important;
    letter-spacing: 0.005em;
    line-height: 1.2 !important;
    color: #ffa500 !important;
}

/* Submenu link text - Gold - Override all */
.sidebar .nav > .nav-item .collapse .nav li a,
body .sidebar .nav > .nav-item .collapse .nav li a {
    color: #ffa500 !important;
}

/* User info section - Ultra-compact */
.sidebar .user .info {
    padding: 8px 0;
}

.sidebar .user .info .user-level {
    font-weight: 600 !important;
    font-size: 12px !important;
    letter-spacing: 0.005em;
    color: #fff !important;
    line-height: 1.2;
}

.sidebar .user .info a span {
    font-weight: 600;
}

/* User dropdown menu items - Ultra-compact */
.sidebar .user .info .collapse .nav li a {
    font-size: 11px !important;
    font-weight: 400 !important;
    padding: 5px 10px !important;
}

.sidebar .user .info .collapse .nav li a .link-collapse {
    font-weight: 400 !important;
    font-size: 11px !important;
}

/* Menu icons - Cyan cyber aesthetic */
.sidebar .nav > .nav-item a i {
    font-size: 14px !important;
    margin-right: 8px !important;
    width: 18px;
    text-align: center;
    color: #00d9ff !important;
    transition: all 0.3s ease;
}

/* Active menu icon - Cyan neon glow */
.sidebar .nav > .nav-item.active > a i {
    color: #ffffff !important;
    filter: drop-shadow(0 0 6px rgba(0, 217, 255, 0.9)) drop-shadow(0 0 12px rgba(0, 217, 255, 0.5));
}

/* Hover menu icon - Cyan glow effect */
.sidebar .nav > .nav-item:not(.active) > a:hover i,
.sidebar .nav > .nav-item:not(.active) > a:focus i {
    color: #5ce1e6 !important;
    filter: drop-shadow(0 0 4px rgba(0, 217, 255, 0.6));
    transform: scale(1.05);
}

/* Hover state - Cyan glow effect - Maximum specificity */
.sidebar.sidebar-style-2 .nav.nav-primary > .nav-item:not(.active) > a:hover p,
.sidebar.sidebar-style-2 .nav.nav-primary > .nav-item:not(.active) > a:hover span,
.sidebar .sidebar-wrapper .nav > .nav-item:not(.active) > a:hover p,
.sidebar .sidebar-wrapper .nav > .nav-item:not(.active) > a:hover span,
.sidebar .nav > .nav-item:not(.active) > a:hover p,
.sidebar .nav > .nav-item:not(.active) > a:hover span,
body .sidebar .nav > .nav-item:not(.active) > a:hover p,
body .sidebar .nav > .nav-item:not(.active) > a:hover span,
.sidebar .nav > .nav-item:not(.active) > a:focus p,
.sidebar .nav > .nav-item:not(.active) > a:focus span {
    font-weight: 500 !important;
    transform: translateX(2px);
    transition: all 0.3s ease;
    color: #5ce1e6 !important;
    text-shadow: 0 0 8px rgba(0, 217, 255, 0.5);
}

/* Hover link - Gold */
.sidebar .nav > .nav-item > a:hover,
body .sidebar .nav > .nav-item > a:hover {
    color: #ffb733 !important;
}

/* Section headers - Gold */
.sidebar .nav .nav-section {
    font-weight: 700 !important;
    font-size: 9px !important;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    padding: 10px 14px 4px !important;
    color: #ffa500 !important;
}

.sidebar .nav .nav-section .text-section {
    font-weight: 700 !important;
    font-size: 9px !important;
    letter-spacing: 0.15em;
    color: #ffa500 !important;
}

/* Caret icon - Gold */
.sidebar .nav > .nav-item a .caret {
    font-size: 8px !important;
    margin-left: auto;
    transition: transform 0.15s ease;
    color: #ffa500 !important;
}

.sidebar .nav > .nav-item a[aria-expanded="true"] .caret {
    transform: rotate(180deg);
    color: #ffb733 !important;
}

/* Minimal spacing for nested navigation */
.sidebar .nav > .nav-item .collapse {
    margin-top: 1px;
    margin-bottom: 1px;
}

/* No separation between menu groups */
.sidebar .nav > .nav-item {
    margin-bottom: 0;
}

/* Enhanced active state background - Cyan neon accent */
.sidebar .nav > .nav-item.active > a::before {
    width: 3px !important;
    opacity: 1 !important;
    background: linear-gradient(to bottom, #00d9ff, #5ce1e6) !important;
    box-shadow: 0 0 12px rgba(0, 217, 255, 0.9), 0 0 24px rgba(0, 217, 255, 0.4);
}

/* Submenu active item - Gold */
.sidebar .nav > .nav-item .collapse li.active a {
    font-weight: 600 !important;
    color: #ffa500 !important;
}

/* Submenu active item text - Gold */
.sidebar .nav > .nav-item .collapse li.active a .link-collapse {
    color: #ffa500 !important;
}

/* Submenu icons - Gold */
.sidebar .nav > .nav-item .collapse li a i {
    color: #ffa500 !important;
    font-size: 12px !important;
}

/* Submenu active icon - Bright gold */
.sidebar .nav > .nav-item .collapse li.active a i {
    color: #ffb733 !important;
}

/* User avatar - Smaller */
.sidebar .user .avatar-sm {
    width: 32px !important;
    height: 32px !important;
}

.sidebar .user .avatar-sm img {
    width: 32px !important;
    height: 32px !important;
}

/* Reduce overall sidebar spacing */
.sidebar .sidebar-content {
    padding: 0;
}

.sidebar .sidebar-wrapper {
    padding-top: 8px;
}

/* User section - tighter */
.sidebar .user {
    padding: 12px 14px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Date text smaller */
.sidebar .user .info small {
    font-size: 9px !important;
}

/* ============================================
   COMPACT SPACING ADJUSTMENTS
   ============================================ */

/* Tighter spacing for data-dense layouts */
.compact-mode .card-body {
    padding: 16px !important;
}

.compact-mode .row {
    margin-bottom: 12px;
}

.compact-mode .form-group {
    margin-bottom: 12px;
}

/* ============================================
   RESPONSIVE ADJUSTMENTS
   ============================================ */

/* Maintain readability on smaller screens */
@media (max-width: 768px) {
    .modal-title {
        font-size: 1rem !important;
    }

    .card-title {
        font-size: 1rem !important;
    }

    .dataTable thead th,
    .table thead th {
        font-size: 11px !important;
    }

    .dataTable tbody td,
    .table tbody td {
        font-size: 12px !important;
    }
}

/* ============================================
   SPECIFIC OVERRIDES FOR IRIS COMPONENTS
   ============================================ */

/* IOC, Asset, Task, Evidence card lists */
#ioc_card_list .card-title,
#task_card_list .card-title,
#asset_card_list .card-title,
#evidence_card_list .card-title {
    font-size: 14px !important;
    font-weight: 600;
}

/* Search inputs on case pages */
#ioc_search,
#task_search,
#asset_search,
#evidence_search {
    font-size: 13px !important;
}

/* Pagination info on case pages */
#ioc_page_info,
#task_page_info,
#asset_page_info,
#evidence_page_info {
    font-size: 11px !important;
}

/* Last updated text */
#iocs_last_updated,
#tasks_last_updated,
#assets_last_updated,
#ucases_last_updated,
#utasks_last_updated {
    font-size: 11px !important;
}

/* ============================================
   BUTTON SIZE CONSISTENCY
   ============================================ */

/* Small buttons */
.btn-sm,
.btn-xs {
    font-size: 12px !important;
    padding: 6px 12px;
}

/* Extra small buttons */
.btn-xs {
    font-size: 11px !important;
    padding: 4px 10px;
}

/* Regular buttons - maintain for good touch targets */
.btn {
    font-size: 13px;
}

/* ============================================
   PROFESSIONAL POLISH
   ============================================ */

/* Better visual hierarchy */
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
    font-size: 70% !important;
    font-weight: 400;
    color: #9ca3af;
}

/* Consistent letter spacing for uppercase elements */
.text-uppercase {
    letter-spacing: 0.5px;
}

/* Better line height for dense text */
.text-dense {
    line-height: 1.3;
}

/* ============================================
   PROFESSIONAL MONOSPACE FONT - JetBrains Mono
   For code, technical data, IOCs, hashes, IPs
   ============================================ */

/* Base monospace font family */
code,
pre,
kbd,
samp,
.text-monospace,
.monospace {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
    font-variant-ligatures: none; /* Disable ligatures for security data */
}

/* Code blocks - enhanced with monospace */
pre {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

/* Inline code */
code {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
    font-weight: 500;
}

/* Keyboard input */
kbd {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 11px !important;
    font-weight: 600;
}

/* Technical data elements - IOCs, IPs, Hashes */
.ioc-value,
.ip-address,
.hash-value,
.file-path,
.domain-name,
.email-address,
.technical-data,
.log-output,
.command-line,
.registry-key,
.process-name,
.artifact-value {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
    letter-spacing: 0.02em;
}

/* IOC table cells and specific elements */
.ioc_value,
#ioc_card_list code,
#ioc_card_list .badge,
[data-ioc-value],
[class*="ioc-"] {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Alert descriptions containing technical data */
.alert-description-preview code,
.alert-card pre,
.alert-card code {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* DataTable cells that contain technical data */
.dataTable td.technical-data,
.dataTable td[data-technical="true"],
.table td code,
.table td pre {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Case summary code blocks */
#rescard1.modern-case-summary-card #targetDiv code,
#rescard1.modern-case-summary-card #targetDiv pre,
#rescard1.modern-case-summary-card #ctrd_casesum code,
#rescard1.modern-case-summary-card #ctrd_casesum pre {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Ace Editor - for technical content editing */
.ace_editor,
.ace_text,
.ace_line {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Timeline technical details */
.timeline-event code,
.timeline-event pre,
.timeline-technical-data {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Modal technical content */
.modal code,
.modal pre,
.modal kbd {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Evidence and artifact data */
.evidence-value,
.artifact-data,
.forensic-data {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
}

/* Asset identifiers and technical specs */
.asset-identifier,
.asset-ip,
.asset-hostname,
.asset-mac-address {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
}

/* Task technical content */
#task_card_list code,
#task_card_list pre {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Better character distinction for security data */
.security-data,
.threat-indicator {
    font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 12px !important;
    letter-spacing: 0.03em;
    font-variant-ligatures: none;
}
