body {
    display: grid;
    place-items: center;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    margin: 0;
    padding: 0;
}
article {
    display: grid;
    grid-template-columns: auto auto auto;
    align-items: center;
    margin-top: 10px;
    padding: 0 10px;
}
footer {
    display: grid;
    align-items: center;
    margin: 20px 0;
}
footer p {
    padding: 5px 10px;
    margin: 0;
    text-align: center;
}
footer a.selected {
    text-decoration: none;
}
footer.print {display: none;}
nav {
    text-align: center;
    margin-top: 20px;
}
header {
    background: #002b36;
    color: #e9e5d2;
    width: 100%;
    line-height: 22px;
    padding: 10px;
    border-bottom: 5px solid #268bd2;
    display: grid;
    grid-template-columns: auto auto;
    box-sizing: border-box;
}
header h1 {
    margin: 0;
    padding: 0 0 0 10px;
    font-size: 20px;
}
header ul {
    list-style: none;
    margin: 0;
    padding: 0 10px 0 0;
    text-align: right;
}
header li {
    display: inline-block;
    padding: 0 0 0 10px;
    white-space: pre;
}
header li:nth-child(2) a, header li:nth-child(2) a:visited, header li:nth-child(2) a:hover {color: #268bd2;}
header li:nth-child(3) a, header li:nth-child(3) a:visited, header li:nth-child(3) a:hover {color: #d33682;}
header li:nth-child(4) a, header li:nth-child(4) a:visited, header li:nth-child(4) a:hover {color: #dc322f;}
.pico {
    padding: 0px;
    position: relative;
    top: -8px;
}
table {
    font-family: ui-monospace,
    Menlo, Monaco,
    "Cascadia Mono", "Segoe UI Mono",
    "Roboto Mono",
    "Oxygen Mono",
    "Ubuntu Monospace",
    "Source Code Pro",
    "Fira Mono",
    "Droid Sans Mono",
    "Courier New", monospace;
}
.labels.right {
    counter-reset: pin 41;
    display: grid;
    align-items: left;
}
.tiny2040 .labels.right {
    counter-reset: pin 17;
}
.labels.left {
    direction: rtl;
    display: grid;
    align-items: right;
}
.labels tr {
    counter-increment: pin;
    line-height: 20px;
    color: #333333;
    font-size: 0;
}
.labels.left tr {
    direction: ltr;
}
.labels.right tbody tr {
    counter-increment: pin -1;
}
.labels.below {
    grid-column: 2;
    margin: -5px auto 0 auto;
    position: relative;
    left: 2px;
}
.labels.below td {
    width: 25px;
    height: auto;
    border: none;
    padding: 0;
    writing-mode: vertical-lr;
    vertical-align: top;
    min-width: 25px;
    display: inline-block;
}
.australian-view .labels.left, .australian-view .labels.right {
    transform: scale(1, -1);
}
.australian-view .labels.left tr, .australian-view .labels.right tr {
    transform: scale(1, -1);
}
.australian-view .labels.below {
    position: relative;
    top: -550px;
}
.labels th, .labels thead {display:none;}
.labels tbody tr:before {
    content: counter(pin);
    text-align: center;
    float: right;
    background-color: #CCCCCC;
    width: 20px;
    height: 20px;
    font-size: 11px;
}
.labels.right tbody tr:before {
    float: left;
}
.labels.below tbody tr:before {display:none;}
td, th {
    height: 20px;
    text-align: left;
    overflow: hidden;
    color: #222;
    font-size: 12px;
    cursor: default;
    white-space: nowrap;
    position: relative;
    border-width:0 4px 0 4px;
    border-style: solid;
    padding: 0 5px;
    min-width: 60px;
}
.extra td {
    border: none;
    background-color: #9e9d9b22;
    padding: 5px;
}
.extra tr:nth-child(odd) td {
    background-color: #9e9d9b33;
}
.extra th {
    border: none;
    background-color: transparent;
}
.extra .wl_gpio {
    position: relative;
    top: 5px;
}
.extra .wl_gpio td {
    background-color: #d3368222;
}
.extra .wl_gpio tr:nth-child(odd) td {
    background-color: #d3368233;
}
.extra .power_pins td {
    background-color: #dc322f22;
}
.extra .power_pins tr:nth-child(odd) td {
    background-color: #dc322f33;
}
.extra .tpads td {
    background-color: #85990022;
}
.extra .tpads tr:nth-child(odd) td {
    background-color: #85990033;
}

/* Hide advanced labels by default */
.labels .advanced {visibility: hidden;}
.labels .hidden, .extra.advanced, .below.advanced {display: none;}
.filter li.advanced {display: none;}

.gpio   {background-color: #85990033;border-color: #859900;}
.ground {background-color: #002b3633;border-color: #002b36;}
.power  {background-color: #dc322f33;border-color: #dc322f;}
.adc    {background-color: #2aa19833;border-color: #2aa198;}
.hstx   {background-color: #2aa19833;border-color: #2aa198;}
.system {background-color: #df8f8e33;border-color: #df8f8e;}
.i2c    {background-color: #268bd233;border-color: #268bd2;}
.spi    {background-color: #d3368233;border-color: #d33682;}
.uart   {background-color: #6c71c433;border-color: #6c71c4;}
.pwm    {background-color: #33333333;border-color: #333333;}

.labels.left td {border-width:0 0 0 4px;}
.labels.right td {border-width:0 4px 0 0;}

.labels tr:hover:before  {background-color: #eeeeee;}
.labels tr:hover .gpio   {background-color: #9fb80366;}
.labels tr:hover .ground {background-color: #01435366;}
.labels tr:hover .power  {background-color: #f13a3766;}
.labels tr:hover .adc    {background-color: #39d1c466;}
.labels tr:hover .hstx   {background-color: #39d1c466;}
.labels tr:hover .system {background-color: #fab4b266;}
.labels tr:hover .i2c    {background-color: #3ba6f166;}
.labels tr:hover .spi    {background-color: #f34f9f66;}
.labels tr:hover .uart   {background-color: #8d91e666;}
.labels tr:hover .pwm    {background-color: #44444466;}

.filter {
    list-style: none;
    margin: 0;
    padding: 0;
}
.filter li {
    display: inline;
}
.filter label {
    display: inline-block;
    color: #002b36;
    padding: 0px 10px 0px 10px;
    line-height: 30px;
    user-select: none;
    margin-bottom: 5px;
}
.interfaces label {
    border-width:0 0px 0 30px;
    border-style: solid;
}
.filter input {
    margin: 0 10px 0 0;
}
.filter.interfaces label {
    color: #222;
}
.filter.interfaces {
    margin-bottom: 20px;
}
.nojs ul {display: none;}

/* Support for flipping board over to view from the bottom... */

/* Top-up View */
.underside {
    display: none;
}

/* Aussie View */
.australian-view .pico {
    rotate: 180deg;
    position: relative;
    top: 8px;
}

.australian-view {
    direction: rtl;
}
.australian-view .labels.left {
    direction: ltr;
}
.australian-view .labels.left td {border-width:0 4px 0 0;}
.australian-view .labels.right td {border-width:0 0 0 4px;}
.underside-view.australian-view .labels.left td {border-width:0 0 0 4px;}
.underside-view.australian-view .labels.right td {border-width:0 4px 0 0;}
.underside-view.australian-view {
    direction: ltr;
}
.underside-view.australian-view .labels.left {
    direction: rtl;
}

/* Bottom-up View */
.underside-view .pico {
    display: none;
}
.underside-view .underside {
    display: block;
}
.underside-view {
    direction: rtl;
}
.underside-view .labels.left {
    direction: ltr;
}
.underside-view .labels.left td {border-width:0 4px 0 0;}
.underside-view .labels.right td {border-width:0 0 0 4px;}

sup {
    position: absolute;
    top: -25%;
    font-size: 70%;
    vertical-align: middle;
}

@media (prefers-color-scheme: dark) {
    body {
        background-color: #000000;
    }
    header {
        background: #111111;
        color: #666666;
        border-bottom-color: #222222;
    }
    .filter label,
    footer p,
    nav p {
        color: #666666;
    }
    footer a.selected {
        color: #666666;
    }
    footer a, footer a:visited {
        color: #1d6ca5;
    }
    footer a:hover {
        color: #3ba6f1;
    }
    .labels tbody tr:before {
        background-color: #002b36;
        color: #e9e5d2;
    }
    .labels tbody tr:hover:before {background-color: #013441;}
    td, th, .filter.interfaces label {
        color: #e9e5d2;
    }
}

@media print {
    footer, header ul, #nav {display: none;}
    footer.print {
        display: block;
        border-top: 5px solid #268bd2;
    }
    #pinout {margin-top: 40px;}
    header {
        background: transparent;
        color: #666666;
    }
}
