/* Tokens & themes */
@import url(/assets/themes-72e49360b45d9bf9d0a92c5382013a8dcd5de2dc3da989ab7f86d06a5cb5eff4.css);
@import url(/assets/design_system-dc550f9e40ea1da96e57df8b374a80f81f15b2318fb1a49bdb5387bbdf60a0f0.css);

/* Base */
@import url(/assets/base/reset-9f286db712ce74302582994899707e8a31728c5489c7d4a183e20678d1ef73bc.css);
@import url(/assets/base/typography-ce50543d406b45c7177ef2f48e65a034fb7974432bc125981b509d272c004817.css);
@import url(/assets/base/layout-8f6ad5cb16cf18a390f42171b520b91347ff76a2a2512c79b51573fd03a81b22.css);
@import url(/assets/base/forms-44dde0926c85dfd560572e6e7dc3b8405a753b05c68623e4f08c15d82ef7b2db.css);

/* Components */
@import url(/assets/components/icons-4faf9c259860d90ccd40233026211f63a5e73b26ecfc5a2b3695b5d11b3cc9da.css);
@import url(/assets/components/fonts-2d9b8b11e3bae3658485999c8a47ca4f889d083bebf37d419c4bae080f5b2fdd.css);
@import url(/assets/components/buttons-652fc4614cdd0f4f506bb39703804efbf86c51dd2795244338e77edac972b3c1.css);
@import url(/assets/components/cards-61d3769b8166b0e42a467e56943ea065064825b3c75a6a1ccc3a8427d36f47a8.css);
@import url(/assets/components/navigation-950613a86556ea486fbe1cde729c829cc73abac381940f98ffa3e7431f9b8e5f.css);
@import url(/assets/components/footer-5374dcc2b9ea3bcea43f8327bf3b7a09eef1ce279924da3dcd2d5308bdf658f3.css);

/* Dashboard base — no dedicated layout yet; kept global */
@import url(/assets/dashboards/main-8c8a780cd2eb8100fc7130653107d5a35153246dde44347d8ecb2798a8eb052e.css);
@import url(/assets/dashboards/components-a0daf8dbd087c7a69768b3666f44e9c57482f5beedece249870336706ace135e.css);
@import url(/assets/dashboards/navigation-79e97a0f7248a96fe0e967d33cb3f888a15a4936d140ca06b0a6a0fceaa631bf.css);

/* Pages without a content_for stylesheet block */
@import url(/assets/pages/contacts-c149d7c9e858c1215d77ca910e41465dd04448d297c9f34f785a75f116957238.css);
@import url(/assets/pages/auth-7301a8283fafb2f687396e2680abced6b2bd5498a91bb6450d0997fb2c5196d2.css);

/* CSS custom property — monospace font stack */
:root {
    --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);
}

/* 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-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; }
.d-grid         { display: grid; }
.hidden         { display: none !important; }

.gap-2 { gap: 0.5rem; }
.text-decoration-none { text-decoration: none; }
.me-2 { margin-right: 0.5rem; }

.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; }
.my-4 { margin-top: 1.5rem; margin-bottom: 1.5rem; }

/* Code & Preformatted Text */
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;
}

.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 {
    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 {
        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 {
        top: 0.5rem;
        left: 0.5rem;
        right: 0.5rem;
    }
}

.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;
}
