@font-face { font-family: 'PT Sans'; src: local("PT Sans"), local("PTSans-Regular"), url("../fonts/PTSans-Regular.woff") format("woff"); font-weight: normal; font-style: normal; }

@font-face { font-family: 'PT Sans'; src: local("PT Sans Bold"), local("PTSans-Bold"), url("../fonts/PTSans-Bold.woff") format("woff"); font-weight: bold; font-style: normal; }

body { background: #ffffff; color: #212228; font-family: "PT Sans", -apple-system, "Helvetica Neue", "Segoe UI", "Roboto", sans-serif; font-weight: 400; font-size: calc(0.8rem + 0.2vw); line-height: 1.6; margin: 0; min-height: 100vh; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

@media (prefers-color-scheme: light) { body { background: #ffffff; color: #212228; } }

h1, h2, h3, h4, h5, h6 { font-weight: 400; }

b, strong, th { font-weight: 600; }

p { text-align: justify; }

a { color: #68f; text-decoration: inherit; }

a:hover { text-decoration: underline; }

header a, footer a, aside a { color: inherit; }

img { margin: .5em 0; }

li { margin: .25em 0; }

img { border-radius: 2px; max-width: 100%; height: auto; }

table { display: inline-block; max-width: 100%; overflow-y: scroll; border-spacing: 1px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(144, 145, 148, 0.12) inset; }

th, td { padding: .5em 1em; box-shadow: 0 0 0 1px rgba(144, 145, 148, 0.12); }

tr:hover, tr:nth-child(odd) td { background: rgba(144, 145, 148, 0.04); }

pre { background: rgba(144, 145, 148, 0.12); border-radius: 2px; font-size: .8em; margin: 1.5em 0; padding: .8em 1.2em; overflow-x: auto; }

:not(pre) > code { font-size: .9em; background: rgba(144, 145, 148, 0.15); opacity: .7; border-radius: 2px; margin: 0 .1em; padding: .2em .4em; }

body { display: flex; flex-direction: column; }

article { flex-grow: 1; }

body > header, body > footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }

body > header, body > article, body > footer { padding: 1.5em; }

article header { margin-bottom: 1.5em; }

article header h1 { font-size: 1.7em; margin: 0 0 .1em; }

nav { margin: .5em -1.2em; }

nav a { margin: .5em 1.2em; }

.title { font-size: 1.75em; }

.highlight pre { background: rgba(47, 48, 57, 0.9); color: white; }

.highlight .c { color: #a29f90; }

.highlight .err { color: #960050; background-color: #1e0010; }

.highlight .k { color: #66d9ef; }

.highlight .l { color: #ae81ff; }

.highlight .n { color: #f8f8f2; }

.highlight .o { color: #f92672; }

.highlight .p { color: #f8f8f2; }

.highlight .cm, .highlight .cp, .highlight .c1, .highlight .cs { color: #75715e; }

.highlight .ge { font-style: italic; }

.highlight .gs { font-weight: bold; }

.highlight .kc, .highlight .kd { color: #66d9ef; }

.highlight .kn { color: #f92672; }

.highlight .kp, .highlight .kr, .highlight .kt { color: #66d9ef; }

.highlight .ld { color: #e6db74; }

.highlight .m { color: #ae81ff; }

.highlight .s { color: #e6db74; }

.highlight .na { color: #a6e22e; }

.highlight .nb { color: #f8f8f2; }

.highlight .nc { color: #a6e22e; }

.highlight .no { color: #66d9ef; }

.highlight .nd { color: #a6e22e; }

.highlight .ni { color: #f8f8f2; }

.highlight .ne, .highlight .nf { color: #a6e22e; }

.highlight .nl, .highlight .nn { color: #f8f8f2; }

.highlight .nx { color: #a6e22e; }

.highlight .py { color: #f8f8f2; }

.highlight .nt { color: #f92672; }

.highlight .nv { color: #f8f8f2; }

.highlight .ow { color: #f92672; }

.highlight .w { color: #f8f8f2; }

.highlight .mf, .highlight .mh, .highlight .mi, .highlight .mo { color: #ae81ff; }

.highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2 { color: #e6db74; }

.highlight .se { color: #ae81ff; }

.highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .s1, .highlight .ss { color: #e6db74; }

.highlight .bp, .highlight .vc, .highlight .vg, .highlight .vi { color: #f8f8f2; }

.highlight .il { color: #ae81ff; }

.highlight .gu { color: #75715e; }

.highlight .gd { color: #f92672; }

.highlight .gi { color: #a6e22e; }

@media (min-width: 40em) { body > header, body > article, body > footer { padding: 1.75em calc(40% - 17em); } }

body > header { background: #ffffff; color: #212228; border-bottom: 0.5px solid rgba(144, 145, 148, 0.14); box-shadow: 0 0 0.6em rgba(33, 34, 40, 0.08) inset; }

body > footer { box-shadow: 0 0 0.6em rgba(33, 34, 40, 0.08) inset; border-top: 0.5px solid rgba(144, 145, 148, 0.14); opacity: .9; }

.container-fluid {
    max-width: 1400px;
}

.nav-tabs {
    border-bottom: 2px solid #dee2e6;
    margin-bottom: 0;
}

.nav-tabs .nav-link {
    color: #6c757d;
    font-weight: 500;
    border: none;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
    padding: 12px 20px;
}

.nav-tabs .nav-link:hover {
    border-color: transparent;
    background-color: #f8f9fa;
    color: #495057;
}

.nav-tabs .nav-link.active {
    color: #495057;
    background-color: transparent;
    border-bottom-color: #007bff;
    font-weight: 600;
}

.tab-content {
    background: white;
    border-radius: 0 0 10px 10px;
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .container-fluid {
        padding: 0 10px;
    }

    .tab-content {
        padding: 20px 15px;
    }

    .nav-tabs .nav-link {
        padding: 10px 12px;
        font-size: 0.9rem;
    }

    .tabulator {
        font-size: 0.85rem;
    }

    .stat-card h3 {
        font-size: 1.5rem;
    }
}

@media (max-width: 576px) {
    .nav-tabs .nav-link {
        padding: 8px 10px;
        font-size: 0.8rem;
    }

    h1 {
        font-size: 1.8rem;
    }

    .tab-content h3 {
        font-size: 1.3rem;
    }
}

.tabulator {
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    margin-bottom: 20px;
}

.tabulator-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    font-weight: bold;
}

.tabulator-header .tabulator-col {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.tabulator-row:hover {
    background-color: #e3f2fd !important;
}

.loading {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px;
}

.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #007bff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
