/* ===== FONT FACES ===== */
@font-face {
    font-family: 'Noto Serif';
    src: url('fonts/NotoSerif-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Noto Serif';
    src: url('fonts/NotoSerif-Italic.ttf') format('truetype');
    font-weight: normal;
    font-style: italic;
}
@font-face {
    font-family: 'Noto Serif';
    src: url('fonts/NotoSerif-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}
@font-face {
    font-family: 'Noto Serif';
    src: url('fonts/NotoSerif-BoldItalic.ttf') format('truetype');
    font-weight: bold;
    font-style: italic;
}
@font-face {
    font-family: 'Noto Sans';
    src: url('fonts/NotoSans-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Noto Sans';
    src: url('fonts/NotoSans-Italic.ttf') format('truetype');
    font-weight: normal;
    font-style: italic;
}
@font-face {
    font-family: 'Noto Sans';
    src: url('fonts/NotoSans-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}
@font-face {
    font-family: 'Noto Sans';
    src: url('fonts/NotoSans-BoldItalic.ttf') format('truetype');
    font-weight: bold;
    font-style: italic;
}
@font-face {
    font-family: 'Noto Mono';
    src: url('fonts/NotoSansMono-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* ===== BASE STYLES ===== */
body {
    margin: 0;
    padding: 2em 5em;
    font-family: "Noto Sans", Verdana, Arial, Helvetica, sans-serif;
    color: #333;
    background-color: #E6E6E6;
    line-height: 1.5;
}

#content {
    max-width: 50em;
    margin: 1em auto;
    border: 1px dotted navy;
    background: #FFF;
    padding: 1em 6em;
}

/* ===== IMPROVED NAVIGATION ===== */
#navigation {
    margin: 10px auto 0;
    max-width: 50em;
    background: url(images/bluepixel.gif) repeat-x center;
    font-size: 1em;
    font-family: "Noto Sans", Verdana, Arial;
}

#navigation ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0;
    list-style: none;
    gap: 15px;
    margin: 0;
}

#navigation li a {
    padding: 5px 15px;
    color: #000099;
    background-color: #ffffff;
    border: 1px solid #000099;
    text-decoration: none;
    border-radius: 3px;
    transition: all 0.2s ease;
}

#navigation li a:hover {
    color: #999999;
    border-color: #666666;
    background: #f8f8f8;
}

#navigation #current {
    font-weight: bold;
    color: #800000;
    border-bottom: 2px solid #800000;
}

/* ===== TYPOGRAPHY ===== */
h1, h2, h3, h4 {
    color: #000080;
    text-align: center;
    font-family: "Noto Sans", Verdana, Arial, sans-serif;
    font-weight: normal;
    margin: 1em 0;
}

h1 { font-size: 2.2rem; }
h2 { font-size: 1.6rem; }

.maroon { color: #800040; font-weight: bold; }
.blue { color: #000099; font-weight: bold; }
.green { color: green; font-weight: bold; }
.wedgwood { color: #7289D9; }

.large { font-size: 1.25em; font-weight: bold; }
.smallcaps { font-variant: small-caps; }
.underline { text-decoration: underline; }

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

p.divider { text-align: center; }

/* ===== LAYOUT HELPERS ===== */
.flex-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin: 20px 0;
}

.flex-container > div {
    background-color: white;
    flex: 1 1 300px;
    min-width: 0;
    padding: 20px;
    box-sizing: border-box;
}

.rightfloat { float: right; margin-left: 1em; }
.BoxLeft { float: left; margin-right: 1em; }

.hang { padding-left: 2em; text-indent: -2em; }
.indent { padding-left: 2em; padding-right: 2em; }

/* ===== TABLES ===== */


/* Center ALL tables by default */
table {
  margin: 0 auto;
  border: none;
  border-collapse: collapse;
}

/* Bordered table variant (keeps centering) */
table.bordered {
  border: 1px solid #000;
}

/* Default cell styling (applies to all tables) */
td, th {
  padding: 0.5em 1em;
  text-align: left; /* Adjust as needed (left|center|right) */
}

/* Bordered cells (inherits centering) */
table.bordered th,
table.bordered td {
  border: 1px solid #000;
}

td.number, th.number {text-align: right; padding-right: 1em;}

/* ===== LISTS ===== */
ul, ol { padding-left: 2em; }
li { margin: 0.75em 0; }

ul.a { list-style-type: circle; }
ul.b { list-style-type: disc; }
ul.c { list-style-type: square; }

/* Simplified list types - removed unused styles */
ol.f { list-style-type: decimal; }
ol.n { list-style-type: lower-alpha; }
ol.q { list-style-type: lower-roman; }
ol.r { list-style-type: upper-alpha; }
ol.t { list-style-type: upper-roman; }

ol#footnotes {
    font-size: 1em;
    padding-left: 1.5em;
}

/* ===== IMAGES ===== */
.scale-image {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.scan { text-align: center; }

/* ===== SPECIAL ELEMENTS ===== */
.pre, pre
{
    font-family: "Noto Mono", Courier, monospace;
    color: #011993;
    background-color: whitesmoke;
    padding-left: 0.5em;
    padding-right: 0.5em;
    overflow-x: auto;
}


.copyright {
    text-align: center;
    font-size: 0.8em;
    color: #000099;
    margin-top: 2em;
}

.source {
    text-align: right;
    margin-top: 2em;
    color: #000080;
}

/* ===== NEWS SECTION ===== */
.news-year {
    font-weight: bold;
    font-size: 1.2em;
    color: navy;
    margin: 1.5em 0 0.5em;
    padding-bottom: 0.3em;
    border-bottom: 1px solid #ccc;
}

.news-entry {
    display: flex;
    margin-bottom: 1em;
    flex-wrap: wrap;
}

.news-date {
    font-weight: bold;
    min-width: 5em;
}

.news-content {
    flex: 1;
    min-width: 200px;
}

/* ===== ANIMATIONS ===== */
@keyframes highfade {
    0% { background-color: transparent; }
    20% { background-color: yellow; }
    100% { background-color: transparent; }
}

a:target, ol#footnotes li:target, sup a:target {
    animation: highfade 2s ease-in-out 1;
}

/* ===== RESPONSIVE ADJUSTMENTS ===== */
@media (max-width: 800px) {
    body {
        padding: 1em 2em;
    }
    
    #content {
        padding: 1em 2em;
    }
    
    .news-entry {
        flex-direction: column;
    }
    
    .news-date {
        margin-bottom: 0.3em;
    }
}

@media (max-width: 600px) {
    body {
        padding: 1em;
    }
    
    #navigation ul {
        gap: 8px;
    }
    
    #navigation li a {
        padding: 3px 8px;
        font-size: 0.9em;
    }
    
    .flex-container > div {
        flex-basis: 100%;
    }
}

/* ===== PUBLICATION STYLES ===== */
.publication-section {
    margin-bottom: 3em;
}

.publication-list {
    margin-left: 1em;
}

.publication-item {
    display: flex;
    margin-bottom: 1em;
    align-items: flex-start;
}

.pub-year {
    flex: 0 0 4em;
    font-weight: bold;
    color: #000080;
}

.pub-details {
    flex: 1;
    padding-left: 1em;
}

.section-footer {
    text-align: right;
    margin: 1.5em 0;
}

.toc-icon {
    vertical-align: middle;
}

/* Responsive adjustments */
@media (max-width: 600px) {
    .publication-item {
        flex-direction: column;
    }
    
    .pub-year {
        margin-bottom: 0.3em;
        flex-basis: auto;
    }
    
    .pub-details {
        padding-left: 0;
    }
}