+/*.granted,
+.granted a {
+       background-color: #cff;
+       border-color: #00c3f9;
+}
+
+.disputed,
+.disputed a {
+       border-color: #930;
+       background-color: #fc9;
+       color: #930;
+}*/
+
+.highlight {
+       filter: hue-rotate(60deg);
+}
+
+.canceled {
+       filter: hue-rotate(180deg) grayscale(33%);
+}
+
+.locked {
+       filter: hue-rotate(180deg);
+}
+
+.pending {
+       filter: grayscale(33%);
+}
+
+.disabled {
+       filter: grayscale(66%);
+}
+
+/*.canceled,
+.canceled a,
+.canceled h2,
+.canceled header {
+       color: #963;
+       background-color: #fddddd;
+       border-color: #963;
+}
+
+.locked,
+.locked a {
+       border-color: #930;
+       background-color: #f9c3c3;
+       color: #930;
+}
+
+.pending,
+.pending a {
+       background-color: #ccc;
+       border-color: #066;
+}
+
+.highlight,
+.highlight a,
+.highlight h3,
+.highlight h3 a {
+       border-color: #3333c3;
+       background-color: #c3c3f9;
+       color: #606;
+}*/
+
+.calendar header {
+       margin-bottom: .1rem;
+       display: grid;
+}
+
+.calendar h3 {
+       overflow-x: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+}
+
+.calendar ul {
+       padding: 0 .1rem .1rem;
+}
+
+/*.ellipsis {
+       / *Required for ellipsis on h2/h3/h4 in header* /
+       display: grid;
+       margin-bottom: 0;
+}
+
+.ellipsis > * {
+       overflow-x: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+}*/
+
+.calendar a {
+       display: grid;
+       /*grid-template-columns: 1fr auto fit-content(1fr);*/
+       grid-template-columns: max-content 1fr max-content;
+       flex: 1 1 auto;
+       grid-gap: .1rem;
+       /*XXX: reset to visible to prevent scroll*/
+       overflow-x: visible;
+}
+
+.calendar .reducible {
+       overflow-x: hidden;
+       text-overflow: ellipsis;
+       text-align: center;
+}
+
+.calendar .glyph {
+       font-family: 'Noto Emoji', 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
+}
+
+.calendar .temperature,
+.calendar .rain,
+.calendar .rate {
+       line-height: 1rem;
+       text-align: right;
+}
+
+.calendar .rate {
+       text-align: center;
+}
+
+.calendar .info {
+       line-height: 1rem;
+       text-align: right;
+}
+
+.calendar .pseudonym {
+       grid-column: span 2;
+}
+
+.seven {
+       grid-template-columns: repeat(7, 1fr);
+}
+
+.four {
+       grid-template-columns: repeat(4, 1fr);
+}
+
+.three {
+       grid-template-columns: repeat(3, 1fr);
+}
+
+.two {
+       grid-template-columns: repeat(2, 1fr);
+}
+
+/*.city .grid h3,
+.location .grid h3,
+.city .grid h4,
+.location .grid h4 {
+       border-style: none;
+       margin: 0;
+       flex: 1 1 auto;
+       white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
+}
+
+.city .grid article,
+.location .grid article {
+       min-height: auto;
+       height: fit-content;
+}
+
+.city .grid {
+       gap: .5rem;
+}*/
+
+.location form {
+       margin: .5rem auto;
+}
+
+.location form .row {
+       flex-direction: column;
+}
+
+.location form div {
+       margin-left: auto;
+       margin-right: auto;
+}
+
+.location label {
+       width: 20rem;
+       padding-right: 0;
+       text-align: center;
+}
+
+.location input,
+.location textarea {
+       width: 20rem;
+       margin: 0 .1rem;
+}
+
+.form {
+       margin: 0;
+       display: flex;
+       flex-direction: column;
+       gap: .5rem;
+}
+
+.form h2 {
+       font-size: 1.17rem;
+       padding: .4rem;
+}
+
+.form a {
+       white-space: nowrap;
+}
+
+.form section {
+       margin: 0;
+       border: .05rem solid #00c3f9;
+       /*border-radius: .2rem;*/
+       width: 100%;
+}
+
+.form form {
+       gap: .5rem;
+}
+
+/* Footer */
+#footer {
+       border: .1rem solid #00c3f9;
+       border-radius: .5rem;
+       margin: .5rem;
+       margin-top: 0;
+       padding: .5rem;
+       text-align: center;
+       font-size: .8rem;
+       line-height: 2.5rem;
+       display: flex;
+       justify-content: space-between;
+       background-color: #cff;
+       gap: .5rem;