/*
 * This is the main application stylesheet file. It includes all styles needed
 * for the Nyra Bot Rails application, including dashboard and bot views.
 */

/* Import icon system */
@import url(/assets/icons-4faf9c259860d90ccd40233026211f63a5e73b26ecfc5a2b3695b5d11b3cc9da.css);

/* Import dashboard-specific styles */
@import url(/assets/themes-9af84fa96baef2b693c802875bdf042e9094b7e35ceb4565138960dbcc066856.css);
@import url(/assets/fonts-2d9b8b11e3bae3658485999c8a47ca4f889d083bebf37d419c4bae080f5b2fdd.css);
@import url(/assets/dashboard-2d77c3156bbc4f204220fc11209144885363b654a6b8e030ec6a199da684fb7a.css);
@import url(/assets/dashboard_components-a0daf8dbd087c7a69768b3666f44e9c57482f5beedece249870336706ace135e.css);
@import url(/assets/dashboard_navigation-79e97a0f7248a96fe0e967d33cb3f888a15a4936d140ca06b0a6a0fceaa631bf.css);
@import url(/assets/dashboard_activity-c5caa648f07bfbb430070d918fbebc7f68d7c4bf97cacf2bf0577952c3fd2884.css);
@import url(/assets/dashboard_analytics-549d3f9d3dca1fa9506f7fd31c5e71dec242b87767b54be651345f29ee1560f4.css);
@import url(/assets/dashboard_logs-522341681bb6fd964c79531ec2eeda20be6a1f43fd9cc325fae5a24f3970e0fb.css);
@import url(/assets/dashboard_moderation-18e35fc31fb2bc9f9939de5107f537e9b88f251283863638e4d6fb1160aa944f.css);
@import url(/assets/dashboard_tickets-44b023bfed6dbf8e195e42c0d59a613490dfdd6f7324ee637aa04a654fc31be2.css);
@import url(/assets/dashboard_premium-54fea2d91ab2b39abe0b5c6a1a7537e6b461a647d39df65c88c0981738e33376.css);
@import url(/assets/dashboard_welcome-a37fff15d936f9eecb09db3b4d1f477bc0ce1848e1f236c68c2e22c34a6889e5.css);
@import url(/assets/level_profile-c51cdc91bf0ff39131e0378d48cfba0259a030f46aa2188bf118b9faba35fc82.css);
@import url(/assets/bot_layout-63fe2e8ff17e0895b08ec7615a3499946f179e2b8433c22655b0ce8f0fd0a6a3.css);
@import url(/assets/bot_index-27f12ebbf543ad683907114b879682f66dd818ffe222d0dc63feb20ab642adb7.css);
@import url(/assets/footer-5374dcc2b9ea3bcea43f8327bf3b7a09eef1ce279924da3dcd2d5308bdf658f3.css);
@import url(/assets/bot_services-39131b6b717751c22cbf65461893befa81628659fe5e2c0aee435fdef7e06106.css);
@import url(/assets/shop-fa0bbf06cbc2deb3dc03c108533aeb88ac822a8b6f59cefa6f1946ba80fee9b4.css);
@import url(/assets/contacts-c149d7c9e858c1215d77ca910e41465dd04448d297c9f34f785a75f116957238.css);

/* Import 6static Design System Modules */
@import url(/assets/typography-ce50543d406b45c7177ef2f48e65a034fb7974432bc125981b509d272c004817.css);
@import url(/assets/buttons-78f8d2f916787d7d1bd0f5ede1b6ee4c7a76e07bebac95c0543275b171ef4c0f.css);
@import url(/assets/navigation-372abcdfb1c0872035347cca74f834dac12d6e472a876704ec3cdc89245fa159.css);
@import url(/assets/layout-8f6ad5cb16cf18a390f42171b520b91347ff76a2a2512c79b51573fd03a81b22.css);
@import url(/assets/cards-61d3769b8166b0e42a467e56943ea065064825b3c75a6a1ccc3a8427d36f47a8.css);
@import url(/assets/auth-1d3c12fbb6b4a67b082d571ee6b8967d6bc59e68d8a53ff475690ef4361046c4.css);
@import url(/assets/design_system-dc550f9e40ea1da96e57df8b374a80f81f15b2318fb1a49bdb5387bbdf60a0f0.css);

/* Global styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Roboto,
        Oxygen, Ubuntu, Cantarell, sans-serif;
    line-height: 1.6;
    color: var(--text-primary);
    background: var(--background);
    transition: var(--transition-theme);
}

/* CSS Variables for consistent theming - these are overridden by themes.css */
:root {
    /* JetBrains Mono available for specific use cases if needed */
    --font-mono: 'JetBrains Mono Nerd Font', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Courier New', monospace;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 1rem;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.75rem;
}

h4 {
    font-size: 1.5rem;
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 1rem;
}

p {
    margin-bottom: 1rem;
}

/* Links */
a {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--primary-hover);
}

/* Forms */
.form-group {
    margin-bottom: 1rem;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--text-primary);
}

.form-control {
    display: block;
    width: 100%;
    padding: 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: var(--border-radius);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-control:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent);
}

/* Cards */
.card {
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.card-header {
    padding: 1rem 1.5rem;
    background: var(--card-bg);
    border-bottom: 1px solid var(--border);
    font-weight: 600;
}

.card-body {
    padding: 1.5rem;
}

.card-footer {
    padding: 1rem 1.5rem;
    background: var(--card-bg);
    border-top: 1px solid var(--border);
}

/* Alerts */
.alert {
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: var(--border-radius);
    position: relative;
}

.alert-dismissible {
    padding-right: 3rem;
}

.alert-dismissible .close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 1rem;
    color: inherit;
    background: none;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
}

.alert-success {
    color: var(--success);
    background-color: color-mix(in srgb, var(--success) 10%, var(--card-bg));
    border-color: color-mix(in srgb, var(--success) 30%, var(--border));
}

.alert-info {
    color: var(--info);
    background-color: color-mix(in srgb, var(--info) 10%, var(--card-bg));
    border-color: color-mix(in srgb, var(--info) 30%, var(--border));
}

.alert-warning {
    color: var(--warning);
    background-color: color-mix(in srgb, var(--warning) 10%, var(--card-bg));
    border-color: color-mix(in srgb, var(--warning) 30%, var(--border));
}

.alert-danger {
    color: var(--danger);
    background-color: color-mix(in srgb, var(--danger) 10%, var(--card-bg));
    border-color: color-mix(in srgb, var(--danger) 30%, var(--border));
}

/* Flash Messages */
.flash-messages {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1050;
    max-width: 400px;
}

.flash-message {
    margin-bottom: 0.5rem;
    padding: 1rem;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    transition: opacity 0.3s ease;
    position: relative;
    border: 1px solid transparent;
}

.flash-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.flash-text {
    flex: 1;
    margin-right: 1rem;
    font-weight: 500;
}

.flash-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: inherit;
    opacity: 0.7;
    transition: opacity 0.2s ease;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.flash-close:hover {
    opacity: 1;
}

/* Flash message types */
.flash-notice,
.flash-success {
    color: var(--success);
    background-color: color-mix(in srgb, var(--success) 15%, var(--card-bg));
    border-color: color-mix(in srgb, var(--success) 30%, var(--border));
}

.flash-alert,
.flash-error {
    color: var(--danger);
    background-color: color-mix(in srgb, var(--danger) 15%, var(--card-bg));
    border-color: color-mix(in srgb, var(--danger) 30%, var(--border));
}

.flash-warning {
    color: var(--warning);
    background-color: color-mix(in srgb, var(--warning) 15%, var(--card-bg));
    border-color: color-mix(in srgb, var(--warning) 30%, var(--border));
}

.flash-info {
    color: var(--info);
    background-color: color-mix(in srgb, var(--info) 15%, var(--card-bg));
    border-color: color-mix(in srgb, var(--info) 30%, var(--border));
}

/* Utilities */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.text-muted {
    color: var(--text-muted);
}

.text-primary {
    color: var(--primary);
}

.text-success {
    color: var(--success);
}

.text-danger {
    color: var(--danger);
}

.text-warning {
    color: var(--warning);
}

.text-info {
    color: var(--info);
}

.d-none {
    display: none;
}

.d-block {
    display: block;
}

.d-inline {
    display: inline;
}

.d-inline-block {
    display: inline-block;
}

.d-flex {
    display: flex;
}

.hidden {
    display: none !important;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 0.25rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-3 {
    margin-bottom: 1rem;
}

.mb-4 {
    margin-bottom: 1.5rem;
}

.mb-5 {
    margin-bottom: 3rem;
}

.mt-0 {
    margin-top: 0;
}

.mt-1 {
    margin-top: 0.25rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-3 {
    margin-top: 1rem;
}

.mt-4 {
    margin-top: 1.5rem;
}

.mt-5 {
    margin-top: 3rem;
}

/* Code & Preformatted Text with JetBrains Mono */
code, pre {
    font-family: var(--font-mono);
    font-size: 0.9em;
}

code {
    background: var(--card-bg);
    padding: 0.2em 0.4em;
    border-radius: 4px;
    color: var(--danger);
}

pre {
    background: var(--card-bg);
    padding: 1rem;
    border-radius: 8px;
    overflow-x: auto;
    line-height: 1.4;
}

pre code {
    background: none;
    padding: 0;
    color: inherit;
}

/* Utility classes for mono font */
.font-mono {
    font-family: var(--font-mono);
}

.console-text {
    font-family: var(--font-mono);
    background: var(--text-primary);
    color: var(--success);
    padding: 1rem;
    border-radius: 8px;
    overflow-x: auto;
}

/* Terminal-like styling */
.terminal {
    font-family: var(--font-mono);
    background: var(--background);
    color: var(--success);
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    overflow-x: auto;
    font-size: 0.9rem;
    line-height: 1.4;
}

/* Container */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Responsive utilities */
@media (max-width: 768px) {
    .d-md-none {
        display: none;
    }

    .d-md-block {
        display: block;
    }
    
    /* Flash messages on mobile */
    .flash-messages {
        left: 1rem;
        right: 1rem;
        max-width: none;
    }
    
    .flash-message {
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .d-sm-none {
        display: none;
    }

    .d-sm-block {
        display: block;
    }

    h1 {
        font-size: 2rem;
    }

    h2 {
        font-size: 1.75rem;
    }

    h3 {
        font-size: 1.5rem;
    }

    h4 {
        font-size: 1.25rem;
    }
    
    /* Flash messages on small screens */
    .flash-messages {
        top: 0.5rem;
        left: 0.5rem;
        right: 0.5rem;
    }
}

/* Authentication conflict warning */
.auth-conflict-warning {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.2rem 0.5rem;
    background: var(--warning-bg);
    color: var(--warning-text);
    border: 1px solid var(--warning-border);
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    cursor: help;
}
