X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/5a1c2978daafdf0ffed02ee261668d4f6d3342a7..e8293888190417411cdcd0fc071db891ba76676c:/Resources/public/css/screen.css

diff --git a/Resources/public/css/screen.css b/Resources/public/css/screen.css
index 953d83f..c63abc3 100644
--- a/Resources/public/css/screen.css
+++ b/Resources/public/css/screen.css
@@ -20,16 +20,19 @@ a::first-letter {
 
 /* Font styling */
 html, body, dd, li, p, td {
-	font-family: 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
 	/* DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
+	font-family: 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
+	font-display: swap;
 }
 
 button, code, input, option, optgroup, pre, select, textarea {
 	font-family: 'Droid Sans Mono', monospace;
+	font-display: swap;
 }
 
 dt, h1, h2, h3, h4, h5, h6, label, legend, th, details {
 	font-family: 'Droid Serif', serif;
+	font-display: swap;
 }
 
 /* Default styling */
@@ -63,7 +66,13 @@ h6 {
 	margin: 1.561rem 0;
 }
 
-p {
+p,
+dt {
+	font-size: 1rem;
+}
+
+dd {
+	font-size: .9rem;
 }
 
 body {
@@ -72,6 +81,132 @@ body {
 	color: #066;
 }
 
+/* Form */
+label {
+	font-size: .8rem;
+	white-space: nowrap;
+}
+
+button,
+input,
+select,
+option,
+optgroup,
+textarea {
+	border: .05rem solid #00c3f9;
+	border-radius: .2rem;
+	font-size: .75rem;
+	color: #066;
+	background-color: transparent;
+	box-sizing: border-box;
+}
+
+form {
+	display: flex;
+	flex-direction: column;
+	flex-wrap: wrap;
+	text-align: center;
+}
+
+/*form header .message {
+	margin: 0;
+}*/
+
+form .row {
+	flex-direction: row;
+}
+
+form div {
+	display: flex;
+	align-content: space-around;
+	justify-content: center;
+	flex-direction: column;
+	margin-bottom: .5rem;
+}
+
+form div:only-child,
+form div:last-child,
+form div:last-of-type {
+	margin-bottom: 0;
+}
+
+/*form section div {
+	display: flex;
+	flex-direction: row;
+	align-content: space-around;
+	justify-content: center;
+}
+
+form section section {
+	display: flex;
+	flex-direction: column;
+}*/
+
+form label {
+	width: 12rem;
+	/*padding: .2rem 1rem .2rem 0;*/
+	padding-right: 1rem;
+	text-align: right;
+}
+
+form input,
+form option,
+form optgroup,
+form select,
+form textarea,
+form section section {
+	width: 24rem;
+	padding: .1rem;
+}
+
+form select {
+	padding: 0 .1rem .1rem .1rem;
+}
+
+form button {
+	width: 10rem;
+	/*margin: .5rem auto 0 auto;*/
+	margin: 0 auto;
+	padding: 0 .1rem .2rem .1rem;
+}
+
+form .message {
+	margin: .25rem 0 0 0;
+}
+
+/* Vertical form */
+.col label {
+	width: 8rem;
+	padding-right: 0;
+	padding-bottom: .2rem;
+	text-align: center;
+}
+
+.col input,
+.col option,
+.col optgroup,
+.col select,
+.col textarea {
+	width: 8rem;
+}
+
+.col button {
+	width: 8rem;
+}
+
+/*.col section {
+	width: auto;
+}*/
+
+.col .row {
+	flex-direction: column;
+}
+
+.col div.date {
+	flex-direction: row;
+	justify-content: space-between;
+}
+
 /* Header */
 #header {
 	border: .1rem solid #00c3f9;
@@ -79,45 +214,30 @@ body {
 	border-radius: 0 0 .5rem .5rem;
 	margin: .5rem;
 	margin-top: 0;
-	padding: .5rem;
-	left: 0;
-	right: 0;
 	display: flex;
+	flex-direction: row;
+	flex-wrap: nowrap;
 	justify-content: space-between;
-	min-width: 180px;
+	/*min-width: 180px;*/
 }
 
 #header h1 {
-	order: 0;
 	padding: 0;
 	margin: 0;
 	vertical-align: middle;
 	white-space: nowrap;
 }
 
-#header h1 a {
-	display: flex;
-}
-
-/*#header h2 {
-	order: 1;
-	font-size: 1.5rem;
-	margin: 0;
-	white-space: nowrap;
+#header img {
+	margin: .5rem;
 }
 
-#header h2:before {
-	content: ">\00a0";
-}*/
-
 #header nav {
-	order: 3;
-	margin-left: auto;
 	display: flex;
-	flex-direction: row;
 	flex-wrap: wrap;
 	align-items: center;
 	justify-content: flex-end;
+	padding: .5rem;
 }
 
 #header nav h2 {
@@ -125,426 +245,383 @@ body {
 }
 
 #header nav a {
+	flex-grow: 1;
 	text-align: center;
-	border-radius: .25rem;
-	padding: .375rem .5rem .25rem .5rem;
-	margin: 0 0 .1rem .5rem;
+	border-radius: .2rem;
+	padding: .25rem .5rem;
+	margin: 0 0 0 .5rem;
 	border: .1rem solid #00c3f9;
 	font-weight: bold;
 	background-color: #cff;
 }
 
-/* Message */
-.notice::before,
-.notice::after,
-.warning::before,
-.warning::after,
-.error::before,
-.error::after {
-	content: "⚠";
-	line-height: 100%;
-	margin: auto 0;
-	padding: 0 .25rem;
+#header nav a:first-child {
+	margin: 0;
 }
 
-.notice,
-.warning,
-.error {
+/* Message */
+.message {
+	margin: 0 .5rem .5rem;
 	display: flex;
 	flex-direction: row;
 	justify-content: space-between;
-	border: .05rem solid #c33333;
-	background-color: #f9c3c3;
-	color: #c33333;
 	font-size: .9rem;
 	padding: .2rem;
 	border-radius: .2rem;
 	text-align: center;
+	border: .05rem solid transparent;
 }
 
-.notice::before,
-.notice::after {
-	/*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm
-	 * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
-	content: "ℹ";
-	/*content: "⌘";*/
-}
-
-.notice {
-	border-color: #3333c3;
-	background-color: #c3c3f9;
-	color: #3333c3;
-}
-
-.warning::before,
-.warning::after {
-	/*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm
-	 * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
-	content: "?";
-	/*content: "⌘";*/
-}
-
-.warning {
-	border-color: #c39333;
-	background-color: #f9c333;
-	color: #936333;
+.message::before,
+.message::after {
+	margin: auto 0;
+	padding: 0 .25rem;
 }
 
-.flash {
-	margin: 0 .5rem .5rem;
+p.message {
+	margin: .5rem;
 }
 
-p.notice,
-p.warning,
-p.error {
-	margin-bottom: .5rem;
+.mortal,
+.mortal button,
+.mortal select {
+	border-color: #c33333;
+	background-color: #f9c3c3;
+	color: #c33333;
 }
 
-pre.trace {
-	border: .05rem solid #00c3f9;
+.dangerous,
+.mortal {
 	border-radius: .2rem;
-	padding: .5rem;
-	margin-bottom: 1rem;
-	font-size: .7rem;
+	padding: .5rem 0;
 }
 
+.error {
+	border-color: #c33333;
+	background-color: #f9c3c3;
+	color: #c33333;
+}
 
-/*ul#error::before,
-ul#error::after,
-ul.error::before,
-ul.error::after,
-ul#notice::before,
-ul#notice::after {
+.error::before,
+.error::after {
+	/*XXX: display /!\ symbol */
 	content: "⚠";
-	padding: .1rem .5rem 0 .5rem;
-	position: absolute;
 }
 
-ul#error::before,
-ul#error::after {
-	padding-top: .2rem;
+.notice {
+	border-color: #3333c3;
+	background-color: #c3c3f9;
+	color: #3333c3;
 }
 
-ul#notice::before,
-ul#notice::after {
+.notice::before,
+.notice::after {
+	/*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm
+	 * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
+	/*XXX: display i symbol */
 	content: "ℹ";
-	padding-top: .3rem;
-}
-
-ul#notice::after,
-ul#error::after {
-	margin-left: 37.8rem;
-}
-
-ul.error::after {
-	margin-left: 34rem;
+	/*XXX: display # symbol */
+	/*content: "⌘";*/
 }
 
-ul#notice,
-ul#error,
-ul.error {
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	box-sizing: border-box;
-	text-align: center;
-	border: .05rem solid #c33333;
-	background-color: #f9c3c3;
-	color: #c33333;
-	font-size: .9rem;
-	padding: .2rem;
-	border-radius: .2rem;
-	width: 40rem;
-	margin: 0 auto .5rem auto;
+.dangerous,
+.dangerous button,
+.dangerous select {
+	border-color: #c39333;
+	background-color: #f9c333;
+	color: #936333;
 }
 
-ul.error {
-	width: 36rem;
-	margin: .2rem 0 0 0;
+.warning {
+	border-color: #c39333;
+	background-color: #f9c333;
+	color: #936333;
 }
 
-ul#notice {
-	border: .05rem solid #3333c3;
-	background-color: #c3c3f9;
-	color: #3333c3;
+.warning::before,
+.warning::after {
+	/*XXX: see https://www.fileformat.info/info/unicode/char/2139/fontsupport.htm
+	 * DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
+	content: "?";
+	/*XXX: display # symbol */
+	/*content: "⌘";*/
 }
 
-ul.error {
-	margin-top: .2rem;
-}*/
-
-/* Content */
+/* Dashboard */
+#dashboard,
 #form,
-#content,
-#regulation,
-#dashboard {
+#recover,
+#regulation {
 	border: .1rem solid #00c3f9;
 	border-radius: .5rem;
 	margin: .5rem;
 	margin-top: 0;
-	overflow: hidden;
-	padding: .5rem;
 	display: flex;
 	flex-direction: column;
 }
 
-/* Section */
-section {
-	display: flex;
-	flex-direction: column;
-	border: .05rem solid #00c3f9;
-	border-radius: .2rem;
-	padding: .5rem;
-	margin-bottom: 1rem;
-	overflow: hidden;
-}
-
-section:only-child,
-section:last-child,
-section:last-of-type {
-	margin-bottom: .5rem;
-}
-
-section h2 {
+#dashboard h2,
+#form h2,
+#recover h2,
+#regulation h2 {
 	background-color: #cff;
 	border-bottom: .1rem solid #00c3f9;
-	margin: -.5rem;
-	margin-bottom: .5rem;
+	margin: 0;
 	padding: .5rem;
-	padding-bottom: .5rem;
 }
 
-section h3 {
+#dashboard h3 {
 	background-color: #cff;
 	border-bottom: .1rem solid #00c3f9;
-	margin: -.5rem;
-	margin-bottom: .5rem;
-	padding: .4rem;
+	margin: 0;
+	padding: .3rem;
 }
 
-section h4 {
+#dashboard h4 {
 	background-color: #cff;
 	border-bottom: .1rem solid #00c3f9;
-	margin: -.5rem;
-	margin-bottom: .5rem;
-	padding: .3rem;
+	margin: 0;
+	padding: .2rem;
 }
 
-section section {
+#form form,
+#recover form {
 	padding: .5rem;
-	padding-bottom: .5rem;
-	margin-bottom: .5rem;
 }
 
-section section:only-child,
-section section:last-child,
-section section:last-of-type {
-	margin-bottom: 0;
-}
+/*#dashboard .calendar h3 {
+	margin: -.3rem;
+	margin-bottom: .3rem;
+}*/
 
-/* Form */
-/*#form div {
-	margin-bottom: .5rem;
+#dashboard .subgrid .cell {
+	padding: .3rem;
 }
 
-#form div:only-child,
-#form div:last-child,
-#form div:last-of-type {
-	margin-bottom: 0;
+#dashboard .subgrid h4 {
+	margin: -.3rem;
+	margin-bottom: .3rem;
 }
 
-form {
+/*#dashboard h4 {
+	background-color: #cff;
+	border-bottom: .1rem solid #00c3f9;
+	margin: -.5rem;
+	margin-bottom: .5rem;
+	padding: .1rem;
+}*/
+
+#dashboard .panel {
 	display: flex;
-	flex-direction: column;
-	/ *border: .05rem solid #00c3f9;
-	border-radius: .2rem;* /
-	padding: .5rem;
+	flex-direction: row;
+	flex-wrap: nowrap;
+	place-content: space-between;
+	border: 0;
+	margin: 0;
+	padding: 0 .5rem .5rem .5rem;
 }
 
-form section {
-	margin-bottom: 1rem;
+#dashboard .panel:only-child,
+#dashboard .panel:first-child,
+#dashboard .panel:first-of-type {
+	padding-top: .5rem;
 }
 
-form section:only-child,
-form section:last-child,
-form section:last-of-type {
-	margin-bottom: .5rem;
-}
-*/
 
-form section,
-form section:only-child,
-form section:last-child,
-form section:last-of-type {
-	border: none;
-	margin-bottom: .5rem;
+#dashboard .panel:only-child,
+#dashboard .panel:last-child,
+#dashboard .panel:last-of-type {
+	padding-bottom: .5rem;
 }
 
-form section section,
-form section section:only-child,
-form section section:last-child,
-form section section:last-of-type {
-	width: 50%;
+#dashboard .candidate section,
+#dashboard .location section {
+	flex-direction: column;
+	flex-grow: 1;
+	border: .1rem solid #00c3f9;
+	border-radius: .3rem;
 	padding: 0;
-	margin-bottom: 0;
 }
 
-form div {
-	display: flex;
-	flex-direction: row;
-	justify-content: center;
-	margin-bottom: .5rem;
+#dashboard .location h4 {
+	border-width: 0;
 }
 
-form div:only-child,
-form div:last-child,
-form div:last-of-type {
+#dashboard .grid {
+	display: flex;
+	flex-flow: row wrap;
+	border-style: solid;
+	border-color: #00c3f9;
+	border-radius: .2rem;
+	/*border-width: .1rem 0 0 .1rem;*/
+	flex-grow: 1;
+	/*box-sizing: inherit;*/
+	box-sizing: border-box;
+	border-collapse: collapse;
+	/*box-sizing: border-box;
+	display: table;
+	padding: 0;
+	flex-grow: 1;
+	table-layout: fixed;
+	border: 0 none;
+	width: fit-content;
+	border-collapse: collapse;*/
+	/*width: calc(100% - 12rem);
+	border-collapse: collapse;*/
+	/*width: calc(100% - 12rem);*/
+	gap: .1rem;
+}
+
+	/*margin: 0;
+#dashboard .grid:only-child,
+#dashboard .grid:last-child,
+#dashboard .grid:last-of-type {
 	margin-bottom: 0;
-}
+}*/
 
-form header div.error {
-	width: calc(50% + 10rem);
-	margin: 0 auto;
+#dashboard .candidate .grid,
+#dashboard .location .grid {
+	padding: .5rem;
 }
 
-form section div.error {
-	margin-top: .25rem;
+#dashboard .dlgrid {
+	display: flex;
+	flex-flow: row wrap;
+	gap: .5rem;
 }
 
-
-/*form section div.error {
-	margin: 0 1rem;
-}*/
-
-
-label {
-	min-width: 10rem;
-	font-size: .85rem;
-	padding: .2rem 1rem .2rem 0;
-	text-align: right;
-	white-space: nowrap;
+#dashboard dl {
+	/*margin: .5rem;
+	padding: .25rem;
+	border: .1rem solid #00c3f9;
+	border-radius: .2rem;
+	flex-grow: 1;
+	box-sizing: border-box;
+	border-collapse: collapse;*/
+	margin: 0 .5rem .5rem .5rem;
 }
 
-button,
-input,
-select,
-option,
-optgroup,
-textarea {
-	box-sizing: border-box;
-	width: 100%;
-	padding: .1rem;
-	border: .05rem solid #00c3f9;
-	border-radius: .2rem;
-	font-size: .8rem;
-	color: #066;
+#dashboard dl:first-child,
+#dashboard dl:only-child,
+#dashboard dl:first-of-type {
+	margin-top: .5rem;
 }
 
-button.submit {
-	width: 25%;
-	min-width: 8rem;
-	margin: 0 auto;
-	padding: .2rem .1rem;
+#dashboard dt {
+	font-size: .9rem;
+	font-weight: bold;
 }
 
-/* Vertical form */
-form.col {
-	margin-left: .5rem;
-	width: 10rem;
+#dashboard dd {
+	font-size: .9rem;
+	margin-left: 1rem;
 }
 
-form.col div {
-	flex-direction: column;
+#dashboard ul {
+	/*padding: 0 .1rem;*/
+	margin: .1rem;
 }
 
-form.col div.error {
-	flex-direction: row;
+#dashboard li {
+	font-size: .8rem;
+	margin-bottom: .1rem;
 }
 
-form.col label {
-	text-align: center;
-	padding-top: 0;
+#dashboard li:only-child,
+#dashboard li:last-child {
+	margin-bottom: 0;
 }
 
-form.col section {
-	padding: 0;
+#dashboard .subgrid {
+	display: flex;
+	flex-flow: row wrap;
+	border-style: solid;
+	border-color: #00c3f9;
+	border-width: .1rem 0 0 .1rem;
+	border-radius: .2rem;
+	flex-grow: 1;
+	box-sizing: inherit;
+	box-sizing: border-box;
+	border-collapse: collapse;
+	margin: .5rem;
 }
 
-form.col section section {
-	width: auto;
+#dashboard .subgrid:only-child,
+#dashboard .subgrid:last-child,
+#dashboard .subgrid:last-of-type {
+	margin-bottom: 0;
 }
 
-form.col div.date {
-	flex-direction: row;
-	justify-content: space-between;
+#dashboard .cell {
+	border-color: inherit;
+	border-style: inherit;
+	border-width: .1rem;
+	border-radius: inherit;
+	flex-grow: inherit;
+	box-sizing: inherit;
+	border-collapse: inherit;
 }
 
-/* Dashboard */
-#dashboard .panel {
-	display: flex;
-	flex-direction: row;
-	flex-wrap: wrap;
-	place-content: space-between;
+#dashboard .subgrid .cell {
+	border-radius: 0;
+	border-width: 0 .1rem .1rem 0;
+}
+#dashboard .subgrid .cell:only-child,
+#dashboard .subgrid .cell:last-child,
+#dashboard .subgrid .cell:last-of-type {
+	border-radius: inherit;
 }
 
-#dashboard .grid {
-	display: table;
-	border: .05rem solid #00c3f9;
-	flex-grow: 1;
-	border-radius: .2rem; /* marche pas sur chrome */
-	table-layout: fixed;
-	width: calc(100% - 12rem);
-	border-collapse: collapse;
+#dashboard .fourth {
+	min-height: 5rem;
+	width: calc(100% / 4 - (6/7*.1rem));
 }
 
-#dashboard .cell {
-	display: table-cell;
-	text-align: left;
-	border: .05rem solid #00c3f9;
-	font-size: initial;
-	height: 8rem;
+#dashboard .seventh {
+	min-height: 5rem;
+	width: calc(100% / 7 - (6/7*.1rem));
 }
 
-#dashboard dl.cell {
-	height: 3rem;
+#dashboard .third {
+	min-height: 5rem;
+	width: calc(100% / 3 - (6/7*.1rem));
 }
 
-#dashboard .cell h3 {
-	font-size: 1rem;
-	padding: .25rem;
-	margin: 0;
+#dashboard .session {
+	border: .1rem solid #00c3f9;
+	border-radius: .2rem;
+	white-space: nowrap;
+	display: flex;
+	flex-direction: row;
+	justify-content: space-between;
+	padding: .1rem;
 }
 
-#dashboard .cell dd {
-	text-align: center;
+#dashboard .session a {
+	overflow-x: hidden;
+	text-overflow: ellipsis;
 }
 
-#dashboard .seventh {
-	width: calc(100% / 7);
+#dashboard .session a:first-letter {
+	color: #066;
 }
 
 #dashboard .disabled {
-	color: #acc;
-	background-color: #bee;
+	/*color: #acc;
+	background-color: #bee;*/
+	filter: grayscale(33%);
 }
 
 #dashboard .current {
 	background-color: #cff;
 }
 
-#dashboard .next {
-	background-color: #eff;
+#dashboard .current h3 {
+	text-decoration: underline solid #00c3f9;
 }
 
-#dashboard .session {
-	border-radius: .2rem;
-	border: .1rem solid #00c3f9;
-	font-size: .8rem;
-	padding: .2rem;
-	margin: 0 .1rem .1rem .1rem;
-	overflow-x: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
+#dashboard .next {
+	background-color: #eff;
 }
 
 #dashboard .pending {
@@ -565,35 +642,71 @@ form.col div.date {
 	background-color: #fc9;
 }
 
+#dashboard .highlight {
+	border-color: #3333c3;
+	background-color: #c3c3f9;
+	color: #3333c3;
+}
 
-/* Regulation */
-#regulation {
+#dashboard .form {
+	margin: 0 0 0 .5rem;
+	display: flex;
+	flex-direction: column;
+	gap: .5rem;
 }
 
+#dashboard .form a,
+#dashboard .form h2 {
+	white-space: nowrap;
+	font-size: 1.17rem;
+	padding: .3rem;
+}
 
-/*#regulation div {
-	display: flex;
-	flex-direction: row;
-	justify-content: space-around;
-	margin-bottom: .5rem;
+#dashboard .form section {
+	border: .05rem solid #00c3f9;
+	border-radius: .2rem;
 }
 
-#regulation div:only-child,
-#regulation div:last-child,
-#regulation div:last-of-type {
-	margin-bottom: 0;
+#dashboard .form form {
+	padding: .5rem;
+	gap: .5rem;
+}
+
+/* Weather
+ * TODO: drop
+>24°C
+#dashboard .cleary a::before {
+	content: "☀";
+}
+
+>17°C
+#dashboard .sunny a::before {
+	content: "⛅";
+}
+
+>10°C
+#dashboard .cloudy a::before {
+	content: "☁";
+}
+
+<=10°C
+#dashboard .winty a::before {
+	content: "❄️";
+}
+
+>0mm
+#dashboard .rainy a::before {
+	content: "🌂";
+}
+
+>2mm
+#dashboard .stormy a::before {
+	content: "☔";
 }*/
-/*
- * XXX: TODO:
- * see https://developer.mozilla.org/fr/docs/Web/HTML/Element/dl
- * see https://www.w3.org/Style/Examples/007/fonts.fr.html
- * see https://fonts.googleapis.com/css?family=Droid+Sans:100,200,300,400,500,600,700,800,900,100i,200i,300i,400i,500i,600i,700i,800i,900i|Droid+Sans+Mono:100,200,300,400,500,600,700,800,900,100i,200i,300i,400i,500i,600i,700i,800i,900i|Droid+Serif:100,200,300,400,500,600,700,800,900,100i,200i,300i,400i,500i,600i,700i,800i,900i
- * see https://fonts.google.com/?query=droi
- * see https://fonts.google.com/specimen/Inconsolata
- * see https://fonts.google.com/specimen/Tangerine%20light,light+italic+regular+semi-bold+bold+extra-bold
- * see https://fonts.google.com/?selection.family=Roboto:100i
- * see https://developers.google.com/fonts/docs/getting_started
- */
+
+/* Regulation */
+#regulation {
+}
 
 #regulation dl {
 	/*display: flex;
@@ -657,25 +770,108 @@ form.col div.date {
 }
 
 /* viewport responsive hack */
-@media ( max-width: 650px ) {
-	#header {
-		flex-wrap: wrap;
+@media ( max-width: 900px ) {
+	#header nav {
+		padding: 0 0 .5rem 0;
+	}
+
+	#header nav a {
+		margin: .5rem .5rem 0 0;
+		white-space: nowrap;
 	}
 
-	#dashboard .panel {
+	#dashboard .calendar {
 		place-content: center;
 		flex-direction: column;
+		flex-wrap: wrap;
 	}
 
-	#dashboard .grid {
-		width: 100%;
+	#dashboard .panel:only-child,
+	#dashboard .panel:last-child,
+	#dashboard .panel:last-of-type {
+		margin-bottom: .5rem;
 	}
 
-	#dashboard div.grid {
-		display: grid;
+	#dashboard .form {
+		margin: .5rem auto 0 auto;
+		flex-direction: row;
 	}
 
-	.form_col {
-		margin: .5rem auto 0 auto;
+	form label {
+		width: 6rem;
 	}
+
+	form input,
+	form option,
+	form optgroup,
+	form select,
+	form textarea,
+	form section section {
+		width: 20rem;
+	}
+
+	form button {
+		width: 6rem;
+	}
+
+	.col label,
+	.col input,
+	.col option,
+	.col optgroup,
+	.col select,
+	.col textarea {
+		width: 12rem;
+	}
+
+	.col button {
+		width: 12rem;
+		box-sizing: fit-content;
+	}
+
+	#dashboard .seventh:nth-child(7n+1),
+	#dashboard .seventh:nth-child(7n+2),
+	#dashboard .seventh:nth-child(7n+3),
+	#dashboard .seventh:nth-child(7n+4) {
+		width: calc(100% / 4 - (6/7*.1rem));
+	}
+
+	#dashboard .seventh:nth-child(7n+5),
+	#dashboard .seventh:nth-child(7n+6),
+	#dashboard .seventh:nth-child(7n+7) {
+		width: calc(100% / 3 - (6/7*.1rem));
+	}
+}
+
+@media ( max-width: 600px ) {
+	form input,
+	form option,
+	form optgroup,
+	form select,
+	form textarea,
+	form section section {
+		width: 14rem;
+	}
+
+	#header {
+		flex-direction: column;
+	}
+	#header nav {
+		justify-content: space-between;
+		padding: 0 .5rem 0 0;
+	}
+	#header nav a {
+		width: auto;
+		margin: 0 0 .5rem .5rem;
+	}
+
+	#dashboard .seventh:nth-child(n) {
+		width: calc(100% / 2 - (6/7*.1rem));
+	}
+
+	#dashboard .seventh:nth-child(7n) {
+		width: calc(100%);
+	}
+}
+
+@media ( max-width: 500px ) {
 }