body {
}

.main-article {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 1em;
	max-width: 700px;
	margin: auto;
	margin-bottom: 1em;
}

.main-article > div {
	padding: 0.8em;
	border-radius: 0.5em;
}

.main-article.star-rating > div {
	border-left:  3px solid hsla( 55, 0%, 50%, 1);
	width: 90%;
	margin-left: 5%;
	color: cadetblue;
}

.main-article.no-star-rating > div {
	border-right:  3px solid hsla( 55, 0%, 50%, 1);
}

.main-article.technical-section > div {
	border: none;
}
.icon svg {
	display: inline-block;
	width: 24px;
	height: 100%;
	vertical-align: top;
	fill: currentColor;
}

div.freedom-house,
div.wikipedia,
div.website,
div.world-policy-council,
div.google-scholar,
.notice {
	border: 1px solid;
}
div.youtube {
	border-right: 1px hsla(0, 80%, 70%, 0.5) solid;
	box-shadow: hsla(0, 80%, 70%, 0.5) 3px 0px 4px -2px;
}
div.freedom-house,
div.codeberg,
div.website,
div.google-scholar,
div.world-policy-council,
div.wikipedia {
	border-radius: 1em;
}
div.freedom-house {
	border-color: #385e8a;
}
div.google-scholar {
	border-color: #356ac3;
}
div.website {
	border-color: #f2711c;
}
div.freedom-house h3 a {
	color: #385e8a;
}
div.google-scholar h3 a {
	color: #356ac3;
}
div.website h3 a {
	color: #f2711c;
}

.icon--google-scholar {
	height: 24px;
}
.google-scholar span.icon,
.section-icon,
.wikipedia i.wikipedia,
.codeberg img.codeberg,
.notice i.icon {
	float: left;
	padding-right: 2em;
}
h3.wikipedia a,
a.wikipedia {
	color: #0645ad;
}
a.wikipedia::before {
	content: '';
	background:url('/copyrighted/wikipedia.png');
	width:   16px;
	height:  16px;
	display: inline-block;
}
div.wikipedia h3 a.wikipedia::before {
	display: none;
}
h3.wikipedia a:visited,
a.wikipedia:visited {
	color: #0b0080;
}
div.codeberg a,
div.codeberg {
	background-color: #2185d0;
	color: white;
}
div.codeberg a {
	text-decoration: underline;
}
div.codeberg a:hover {
	color: hsla(0, 63%, 47%, 1);
}
div.codeberg a:active {
	color: hsla(0, 100%, 47%, 1);
}

div.world-policy-council {
	border-color: #fcbb2c;
	background: linear-gradient(to bottom right, hsla(41, 97%, 93%, 1), white);
}
div.world-policy-council h3 a {
	color: #fcbb2c;
}

.stub {
	border-color: red;
	color: red;
}

/* <h1> <h2> <h3 */

h1 {
	font-family: baskerville, serif;
}

h1 span:lang(en) {
	color: white;
	background-color: black;
	text-align: center;
}

h1 .section-stars {
	font-size: 40%;
}


h2.main-article > div {
	border: none;
	border-top: 5px solid hsla( 55,  0%, 50%, 1);
	margin-top: 1em;
}

.main-article h3 {
	margin: 0;
	margin-bottom: 0.5em;
	font-size: 130%;
}

h3 div:lang(en) {
	border: none;
}

/* <p> */

p {
	text-align: justify;
}
/* <a> */

a {
	color: #004f9c;
}

a.see.reference {
	text-decoration: none;
	cursor: pointer;
	font-size: 80%;
	vertical-align: super;
}
a.see.reference:target,
#reference-list li.reference:target {
	background-color: hsla(53, 100%, 80%, 1);
}

/* <blockquote> */

blockquote, q {
	font-style: italic;
}


/* <code> */

code {
	white-space: pre;
	background: #f4f4f4;
	border: 1px solid #ddd;
	border-left: 3px solid #f36d33;
	color: #666;
	page-break-inside: avoid;
	font-family: monospace;
	font-size: 15px;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1em 1.5em;
	display: block;
	word-wrap: break-word;
}
code:hover,
code:focus {
	white-space: pre-wrap;
}

/* Header & Footer */

#header {
	padding: 0;
}
#footer {
	padding: 0;
	padding-bottom: 2em;
}
#footer div ,
#header div {
	display: flex;
	border: none;
	padding: 0;
}
#header div {
	margin-bottom: 1em;
}
#footer div a ,
#header div a {
	flex-grow: 1;
	color: darkgrey;
	background-color: white;
	text-align: center;
	text-decoration: none;
}
#footer div a:hover ,
#header div a:hover {
	color: white;
	background-color: darkgrey;
}

/* Download PDF */

div.download-pdf {
	float: right;
	margin-left: 1em;
	text-align: center;
}
div.download-pdf a {
	color: white;
}
div.download-pdf img {
	display: block;
}
div.download-pdf div.download {
	background-color: hsla(0, 70%, 47%, 1);
	padding: 0.4em;
	border-radius: 0 0 1em 1em;
}

/* Classes */

.democracy.virtue,
.democracy.flaw  {
	border: 1px black solid;
	border-radius: 0.5em;
	padding: 0.1em 0.8em;
	margin: 0.05em;
	display: inline-block;
	font-size: 80%;
}
.democracy.flaw  {
	border-color: darksalmon;
	color:        darksalmon;
}
.democracy.virtue  {
	border-color: forestgreen;
	color:        forestgreen;
}

/* ----------------------- */
/* Section country indices */
/* ----------------------- */

.country-index {
	color: black;
	text-shadow: 1px 1px 3px white;
}

.main-article.country-index > div {
	padding: 0;
}

.country-index .title {
	text-align: center;
	font-weight: bold;
	background-color: lightgrey;
	border-radius: 1em 1em 0 0;
	padding: 0;
}
.country-index .scale {
	display: flex;
}

.country-index .scale span {
	border-top: 5px solid;
	text-align: center;
	flex: 1;
	padding: 0;
}

.country-index .status {
	display: flex;
}

.country-index .status span {
	text-align: center;
	padding: 0;
	flex: 1;
	color: black;
	text-shadow: 1px 1px 3px white;
}

/* Democracy Index */

.democracy-index .status .authoritarian-regime {
	flex: 2;
}

.democracy-index .status span.level-01,
.democracy-index .scale  span.level-01 {
	border: none;
	background-color: hsl(152, 100%, 20%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.democracy-index .status span.level-02,
.democracy-index .scale span.level-02 {
	border: none;
	background-color: hsl(152, 100%, 30%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.democracy-index .status span.level-03,
.democracy-index .scale span.level-03 {
	border: none;
	background-color: hsl(118,  41%, 56%);
}
.democracy-index .status span.level-04,
.democracy-index .scale span.level-04 {
	border: none;
	background-color: hsl(118,  41%, 66%);
}
.democracy-index .status span.level-05,
.democracy-index .scale span.level-05 {
	border: none;
	background-color: hsl( 44,  98%, 77%);
}
.democracy-index .status span.level-06,
.democracy-index .scale span.level-06 {
	border: none;
	background-color: hsl( 44,  98%, 57%);
}
.democracy-index .status span.level-07,
.democracy-index .scale span.level-07 {
	border: none;
	background-color: hsl( 14,  89%, 57%);
}
.democracy-index .status span.level-08,
.democracy-index .scale span.level-08 {
	border: none;
	background-color: hsl( 14,  89%, 47%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.democracy-index .status span.level-09,
.democracy-index .scale span.level-09 {
	border: none;
	background-color: hsl(346, 100%, 32%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.democracy-index .status span.level-10,
.democracy-index .scale span.level-10 {
	border: none;
	background-color: hsl(346, 100%, 22%);
	color: white;
	text-shadow: 1px 1px 3px black;
}


/* Press Freedom Index */

.press-freedom-index .status span.level-01,
.press-freedom-index .scale  span.level-01 {
	border: none;
	background-color: hsl( 74,  68%, 40%);
}
.press-freedom-index .status span.level-02,
.press-freedom-index .scale span.level-02 {
	border: none;
	background-color: hsl( 74,  68%, 45%);
}
.press-freedom-index .status span.level-03,
.press-freedom-index .scale span.level-03 {
	border: none;
	background-color: hsl( 60,  82%, 50%);
}
.press-freedom-index .status span.level-04,
.press-freedom-index .scale span.level-04 {
	border: none;
	background-color: hsl( 46,  82%, 55%);
}
.press-freedom-index .status span.level-05,
.press-freedom-index .scale span.level-05 {
	border: none;
	background-color: hsl( 30,  72%, 60%);
}
.press-freedom-index .status span.level-06,
.press-freedom-index .scale span.level-06 {
	border: none;
	background-color: hsl( 23,  72%, 55%);
}
.press-freedom-index .status span.level-07,
.press-freedom-index .scale span.level-07 {
	border: none;
	background-color: hsl( 15,  71%, 50%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.press-freedom-index .status span.level-08,
.press-freedom-index .scale span.level-08 {
	border: none;
	background-color: hsl(  7,  71%, 45%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.press-freedom-index .status span.level-09,
.press-freedom-index .scale span.level-09 {
	border: none;
	background-color: hsl(  1,  78%, 40%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.press-freedom-index .status span.level-10,
.press-freedom-index .scale span.level-10 {
	border: none;
	background-color: hsl(  1,  78%, 35%);
	color: white;
	text-shadow: 1px 1px 3px black;
}



/* Freedom House */
.country-index.freedom-house-index .scale span {
	border: none;
	padding: 0.1em;
	text-shadow: 1px 1px 3px black;
	line-height: 1em;
	text-align: center;
	flex: 1;
}
.freedom-house-index .scale span.level-01 {
	border-color:     hsl(160,  49%, 45%);
	background-color: hsl(160,  49%, 45%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-02 {
	border-color:     hsl(160,  49%, 60%);
	background-color: hsl(160,  49%, 60%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-03 {
	border-color:     hsl(160,  49%, 75%);
	background-color: hsl(160,  49%, 75%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-04 {
	border-color:     hsl( 47,  43%, 52%);
	background-color: hsl( 47,  43%, 52%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-05 {
	border-color:     hsl( 47,  43%, 62%);
	background-color: hsl( 47,  43%, 62%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-06 {
	border-color:     hsl( 47,  43%, 72%);
	background-color: hsl( 47,  43%, 72%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-07 {
	border-color:     hsl(291,  23%, 72%);
	background-color: hsl(291,  23%, 72%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-08 {
	border-color:     hsl(291,  23%, 62%);
	background-color: hsl(291,  23%, 62%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .scale span.level-09 {
	border-color:     hsl(291,  23%, 52%);
	background-color: hsl(291,  23%, 52%);
	color: white;
	text-shadow: 1px 1px 3px black;
}




.freedom-house-index .status span.free.active.level-01 {
	background-color: hsl(160,  49%, 45%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.free.active.level-02 {
	background-color: hsl(160,  49%, 60%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.free.active.level-03 {
	background-color: hsl(160,  49%, 75%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.partly-free.active.level-04 {
	background-color: hsl( 47,  43%, 52%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.partly-free.active.level-05 {
	background-color: hsl( 47,  43%, 62%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.partly-free.active.level-06 {
	background-color: hsl( 47,  43%, 72%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.not-free.active.level-07 {
	background-color: hsl(291,  23%, 72%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.not-free.active.level-08 {
	background-color: hsl(291,  23%, 62%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
.freedom-house-index .status span.not-free.active.level-09 {
	background-color: hsl(291,  23%, 52%);
	color: white;
	text-shadow: 1px 1px 3px black;
}
/* Section stars */

.section-stars {
	float: right;
}

/* Voting methods */

table.voting.method {
	border-collapse: separate;
	border-spacing: 0;
	margin: 25px 0;
	font-size: 0.9em;
	font-family: sans-serif;
	min-width: 400px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.13), 0 1px 4px rgba(0, 0, 0, 0.07);
}
table.voting.method tr {
	background-color: #f8f8f8;
	text-align: left;
}
table.voting.method th, table.voting.method td {
	padding: 12px 15px;
	border-bottom: 1px solid #dddddd;
}
table.voting.method tr:last-of-type th,
table.voting.method tr:last-of-type td {
	border-bottom: none;
}
table.voting.method th {
	background: linear-gradient(160deg, #1e1e1e, #323232);
	color: #ffffff;
}
table.voting.method tbody tr:hover {
	filter: brightness(0.94);
	transition: filter 0.12s ease;
}
table.voting.method tr.left,
table.voting.method tr.progressive {
	background: linear-gradient(160deg, hsla(0, 100%, 93%, 1), hsla(0, 100%, 87%, 1));
	color: black;
}
table.voting.method tr.right,
table.voting.method tr.conservative {
	background: linear-gradient(160deg, hsla(214, 100%, 93%, 1), hsla(214, 100%, 86%, 1));
	color: black;
}
table.voting.method tr.very.right,
table.voting.method tr.very.conservative {
	background: linear-gradient(160deg, hsla(214, 100%, 83%, 1), hsla(214, 100%, 76%, 1));
	color: black;
}
table.voting.method tr.democratic {
	background: linear-gradient(160deg, #B0CEFF, #9abeff);
}
table.voting.method tr.whig {
	background: linear-gradient(160deg, #F0C862, #e8bc52);
}
table.voting.method tr.dpp {
	background: linear-gradient(160deg, #1B9431, #157528);
	color: white;
}
table.voting.method tr.kmt {
	background: linear-gradient(160deg, #000099, #00007a);
	color: white;
}
table.voting.method tr.tw-people-first-party {
	background: linear-gradient(160deg, #FF6310, #f05500);
}
table.voting.method tr.tw-new-party {
	background: linear-gradient(160deg, #FFD700, #f0ca00);
}
table.voting.method tr.independent {
	background: linear-gradient(160deg, #DCDCDC, #cacaca);
}

table.voting.method td.winner {
	color: green;
	font-size: 400%;
	font-weight: bold;
	line-height: 1;
}

/* Voting method comparison table: semantic casting-design categories */
table.voting.method tr.casting-single {
	background: linear-gradient(160deg, hsla(36, 70%, 93%, 1), hsla(36, 70%, 87%, 1));
	color: black;
}
table.voting.method tr.casting-ranked {
	background: linear-gradient(160deg, hsla(260, 35%, 94%, 1), hsla(260, 35%, 88%, 1));
	color: black;
}
table.voting.method tr.casting-multi {
	background: linear-gradient(160deg, hsla(145, 45%, 92%, 1), hsla(145, 45%, 86%, 1));
	color: black;
}

/* Technology table: three-stage election workflow */
table.voting.method tr.tech-casting {
	background: linear-gradient(160deg, hsla(210, 45%, 93%, 1), hsla(210, 45%, 87%, 1));
	color: black;
}
table.voting.method tr.tech-paper {
	background: linear-gradient(160deg, hsla(45, 55%, 93%, 1), hsla(45, 55%, 87%, 1));
	color: black;
}
table.voting.method tr.tech-tallying {
	background: linear-gradient(160deg, hsla(175, 40%, 92%, 1), hsla(175, 40%, 86%, 1));
	color: black;
}
