]> Raphaël G. Git Repositories - airbundle/blobdiff - Resources/public/css/screen.css
Update context tree
[airbundle] / Resources / public / css / screen.css
index feb1460f4cb10ca31330d13a145979e0107a6380..9edb5276303c5c1bfda6c270e6d1336bc232d133 100644 (file)
@@ -20,55 +20,74 @@ 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 */
 h1 {
        font-size: 2rem;
-       margin: 1.34rem 0;
 }
 
 h2 {
        font-size: 1.5rem;
-       margin: 1.245rem 0;
+       margin: 0 0 .5rem;
+       padding: .5rem;
 }
 
 h3 {
        font-size: 1.17rem;
-       margin: 1.17rem 0;
+       margin: 0 0 .5rem;
+       padding: .4rem;
 }
 
 h4 {
        font-size: 1rem;
-       margin: 1.33rem 0;
+       margin: 0 0 .5rem;
+       padding: .3rem;
 }
 
 h5 {
        font-size: .85rem;
-       margin: 1.386rem 0;
+       margin: 0 0 .5rem;
+       padding: .2rem;
 }
 
 h6 {
        font-size: .67rem;
-       margin: 1.561rem 0;
+       margin: 0 0 .5rem;
+       padding: .1rem;
 }
 
-p,
-dt {
-       font-size: 1rem;
+nav strong {
+       display: block;
+       font-size: 1.17rem;
+       margin: 0 0 .5rem;
+       padding: .4rem;
+}
+
+h2, h3, h4, h5, nav strong {
+       background-color: #cff;
+       border-bottom: .1rem solid #00c3f9;
+}
+
+strong {
+       font-weight: bold;
 }
 
-dd {
+p {
+       margin: 0 .5rem .3rem;
        font-size: .9rem;
 }
 
@@ -78,654 +97,650 @@ body {
        color: #066;
 }
 
-/* Header */
-#header {
+nav,
+section {
+       margin: 0 .5rem .5rem;
        border: .1rem solid #00c3f9;
-       border-top: 0;
-       border-radius: 0 0 .5rem .5rem;
-       margin: .5rem;
-       margin-top: 0;
-       padding: .5rem;
-       left: 0;
-       right: 0;
-       display: flex;
-       justify-content: space-between;
-       min-width: 180px;
+       border-radius: .3rem;
 }
 
-#header h1 {
-       order: 0;
-       padding: 0;
-       margin: 0;
-       vertical-align: middle;
-       white-space: nowrap;
+ul {
+       display: grid;
+       margin: 0 .5rem .3rem;
+       font-size: .9rem;
+       list-style: ' - ' inside none;
+       gap: .3rem;
 }
 
-#header h1 a {
-       display: flex;
+nav ul {
+       list-style: none inside none;
+       margin-bottom: .5rem;
+       gap: .5rem;
 }
 
-/*#header h2 {
-       order: 1;
-       font-size: 1.5rem;
-       margin: 0;
+nav ul ul {
+       margin-top: .5rem;
+       margin-bottom: 0;
+}
+
+/* Form */
+label {
+       font-size: .8rem;
        white-space: nowrap;
 }
 
-#header h2:before {
-       content: ">\00a0";
-}*/
+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;
+}
 
-#header nav {
-       order: 3;
-       margin-left: auto;
+form {
        display: flex;
-       flex-direction: row;
+       flex-direction: column;
        flex-wrap: wrap;
-       align-items: center;
-       justify-content: flex-end;
+       margin: 0 .5rem .5rem;
+       text-align: center;
 }
 
-#header nav h2 {
-       display: none;
+form .row {
+       flex-direction: row;
 }
 
-#header nav a {
-       text-align: center;
-       border-radius: .25rem;
-       padding: .375rem .5rem .25rem .5rem;
-       margin: 0 0 .1rem .5rem;
-       border: .1rem solid #00c3f9;
-       font-weight: bold;
-       background-color: #cff;
+form div {
+       display: flex;
+       align-content: space-around;
+       justify-content: center;
+       flex-direction: column;
+       margin-bottom: .5rem;
 }
 
-/* Message */
-.notice::before,
-.notice::after,
-.warning::before,
-.warning::after,
-.error::before,
-.error::after {
-       content: "⚠";
-       line-height: 100%;
-       margin: auto 0;
-       padding: 0 .25rem;
+form div:only-child,
+form div:last-child,
+form div:last-of-type {
+       margin-bottom: 0;
 }
 
-.notice,
-.warning,
-.error {
+/*form section div {
        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;
+       align-content: space-around;
+       justify-content: center;
 }
 
-.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: "⌘";*/
+form section section {
+       display: flex;
+       flex-direction: column;
+}*/
+
+form label {
+       width: 12rem;
+       /*padding: .2rem 1rem .2rem 0;*/
+       padding-right: 1rem;
+       text-align: right;
 }
 
-.notice {
-       border-color: #3333c3;
-       background-color: #c3c3f9;
-       color: #3333c3;
+form input,
+form option,
+form optgroup,
+form select,
+form textarea,
+form section section {
+       width: 24rem;
+       padding: .1rem;
 }
 
-.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: "⌘";*/
+form select {
+       padding: 0 .1rem .1rem .1rem;
 }
 
-.warning {
-       border-color: #c39333;
-       background-color: #f9c333;
-       color: #936333;
+form button {
+       width: 10rem;
+       /*margin: .5rem auto 0 auto;*/
+       margin: 0 auto;
+       padding: 0 .1rem .2rem .1rem;
 }
 
-.flash {
-       margin: 0 .5rem .5rem;
+form .message {
+       margin: .25rem 0 0 0;
 }
 
-p.notice,
-p.warning,
-p.error {
-       margin-bottom: .5rem;
+/* Vertical form */
+.col label {
+       width: 8rem;
+       padding-right: 0;
+       padding-bottom: .2rem;
+       text-align: center;
 }
 
-pre.trace {
-       border: .05rem solid #00c3f9;
-       border-radius: .2rem;
-       padding: .5rem;
-       margin-bottom: 1rem;
-       font-size: .7rem;
+.col input,
+.col option,
+.col optgroup,
+.col select,
+.col textarea {
+       width: 8rem;
 }
 
+.col button {
+       width: 8rem;
+}
 
-/*ul#error::before,
-ul#error::after,
-ul.error::before,
-ul.error::after,
-ul#notice::before,
-ul#notice::after {
-       content: "⚠";
-       padding: .1rem .5rem 0 .5rem;
-       position: absolute;
+/*.col section {
+       width: auto;
+}*/
+
+.col .row {
+       flex-direction: column;
 }
 
-ul#error::before,
-ul#error::after {
-       padding-top: .2rem;
+.col div.date {
+       flex-direction: row;
+       justify-content: space-between;
 }
 
-ul#notice::before,
-ul#notice::after {
-       content: "ℹ";
-       padding-top: .3rem;
+/* Header */
+#header {
+       border: .1rem solid #00c3f9;
+       border-top: 0;
+       border-radius: 0 0 .5rem .5rem;
+       margin: 0 .5rem .5rem;
+       display: flex;
+       flex-direction: row;
+       flex-wrap: nowrap;
+       justify-content: space-between;
+       line-height: 32px;
+       font-size: 32px;
+       padding: .5rem;
+       gap: .5rem;
 }
 
-ul#notice::after,
-ul#error::after {
-       margin-left: 37.8rem;
+#header h1 {
+       padding: 0;
+       margin: 0;
+       white-space: nowrap;
+       width: 171px;
+       height: 32px;
 }
 
-ul.error::after {
-       margin-left: 34rem;
+#header h2 {
+       display: none;
 }
 
-ul#notice,
-ul#error,
-ul.error {
+#header nav {
        display: flex;
-       flex-direction: column;
+       flex: 1 1 auto;
+       border-style: none;
+       margin: 0;
+}
+
+#header ul {
+       display: flex;
+       flex: 1 1 auto;
+       flex-direction: row;
+       flex-wrap: wrap;
+       margin: 0;
+       gap: .5rem;
+}
+
+#header li {
+       display: flex;
+       flex: 1 1 auto;
+       border-radius: .2rem;
+       border: .1rem solid #00c3f9;
+       background-color: #cff;
        justify-content: center;
-       box-sizing: border-box;
+}
+
+#header ul a {
        text-align: center;
-       border: .05rem solid #c33333;
-       background-color: #f9c3c3;
-       color: #c33333;
+       font-weight: bold;
+}
+
+/* Message */
+.message {
+       margin: 0 .5rem .5rem;
+       display: flex;
+       flex-direction: row;
+       justify-content: space-between;
        font-size: .9rem;
        padding: .2rem;
        border-radius: .2rem;
-       width: 40rem;
-       margin: 0 auto .5rem auto;
+       text-align: center;
+       border: .05rem solid transparent;
+}
+
+.message::before,
+.message::after {
+       margin: auto 0;
+       padding: 0 .25rem;
+}
+
+.message ul {
+       margin: 0;
+       list-style: none inside none;
+       gap: .1rem;
+}
+
+.mortal,
+.mortal button,
+.mortal select {
+       border-color: #c33333;
+       background-color: #f9c3c3;
+       color: #c33333;
+}
+
+.dangerous,
+.mortal {
+       border-radius: .2rem;
+       padding: .5rem 0;
 }
 
-ul.error {
-       width: 36rem;
-       margin: .2rem 0 0 0;
+.error {
+       border-color: #c33333;
+       background-color: #f9c3c3;
+       color: #c33333;
+}
+
+.error::before,
+.error::after {
+       /*XXX: display /!\ symbol */
+       content: "⚠";
 }
 
-ul#notice {
-       border: .05rem solid #3333c3;
+.notice {
+       border-color: #3333c3;
        background-color: #c3c3f9;
        color: #3333c3;
 }
 
-ul.error {
-       margin-top: .2rem;
-}*/
+.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: "ℹ";
+       /*XXX: display # symbol */
+       /*content: "⌘";*/
+}
+
+.dangerous,
+.dangerous button,
+.dangerous select {
+       border-color: #c39333;
+       background-color: #f9c333;
+       color: #936333;
+}
+
+.warning {
+       border-color: #c39333;
+       background-color: #f9c333;
+       color: #936333;
+}
+
+.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: "⌘";*/
+}
 
-/* Content */
+/* Dashboard */
 #dashboard,
 #form,
-#content,
-#regulation,
-#location,
-#session,
-#user {
+#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 {
+.panel {
        display: flex;
-       flex-direction: column;
-       border: .05rem solid #00c3f9;
+       flex-direction: row;
+       margin: 0 .5rem .5rem;
+       gap: .5rem;
+}
+
+.grid {
+       display: flex;
+       flex-flow: row wrap;
+       border-style: solid;
+       border-color: #00c3f9;
        border-radius: .2rem;
-       padding: .5rem;
-       margin-bottom: 1rem;
-       overflow: hidden;
+       flex: 1 1 auto;
+       box-sizing: border-box;
+       border-collapse: collapse;
+       gap: .1rem;
 }
 
-section:only-child,
-section:last-child,
-section:last-of-type {
-       margin-bottom: .5rem;
+.grid section {
+       margin: 0;
 }
 
-section h2 {
-       background-color: #cff;
-       border-bottom: .1rem solid #00c3f9;
-       margin: -.5rem;
-       margin-bottom: .5rem;
-       padding: .5rem;
-       padding-bottom: .5rem;
+.grid h3 {
+       margin: 0;
 }
 
-section h3 {
-       background-color: #cff;
-       border-bottom: .1rem solid #00c3f9;
-       margin: -.5rem;
-       margin-bottom: .5rem;
-       padding: .4rem;
+.grid ul {
+       display: block;
+       margin: .1rem;
+       font-size: .8rem;
+       list-style: none inside none;
 }
 
-section h4 {
-       background-color: #cff;
-       border-bottom: .1rem solid #00c3f9;
-       margin: -.5rem;
-       margin-bottom: .5rem;
-       padding: .3rem;
+.grid p {
+       margin: 0 0 .3rem;
 }
 
-section section {
-       padding: .5rem;
-       padding-bottom: .5rem;
-       margin-bottom: .5rem;
+.grid p:only-child,
+.grid p:last-child,
+.grid p:last-of-type {
+       margin: 0;
 }
 
-section section:only-child,
-section section:last-child,
-section section:last-of-type {
-       margin-bottom: 0;
+.form {
+       margin: 0;
+       display: flex;
+       flex-direction: column;
+       gap: .5rem;
 }
 
-/* Form */
-/*#form div {
-       margin-bottom: .5rem;
+.form h2 {
+       font-size: 1.17rem;
+       padding: .4rem;
 }
 
-#form div:only-child,
-#form div:last-child,
-#form div:last-of-type {
-       margin-bottom: 0;
+.form a {
+       white-space: nowrap;
 }
 
-form {
-       display: flex;
-       flex-direction: column;
-       / *border: .05rem solid #00c3f9;
-       border-radius: .2rem;* /
-       padding: .5rem;
+.form section {
+       margin: 0;
+       border: .05rem solid #00c3f9;
+       border-radius: .2rem;
 }
 
-form section {
-       margin-bottom: 1rem;
+.form form {
+       gap: .5rem;
 }
 
-form section:only-child,
-form section:last-child,
-form section:last-of-type {
-       margin-bottom: .5rem;
+#location section {
+       display: flex;
+       flex: 1 1 auto;
+       flex-direction: column;
 }
-*/
 
-form section,
-form section:only-child,
-form section:last-child,
-form section:last-of-type {
-       border: none;
-       margin-bottom: .5rem;
+#location h3 {
+       margin: 0;
+       border-style: none;
+       flex: 1 1 auto;
 }
 
-form section section,
-form section section:only-child,
-form section section:last-child,
-form section section:last-of-type {
-       width: 50%;
-       padding: 0;
-       margin-bottom: 0;
+#location form {
+       margin-top: .5rem;
 }
 
-form div {
+#location form label {
+       width: 4.5rem;
+}
+
+/*#dashboard .panel {
        display: flex;
        flex-direction: row;
-       justify-content: center;
-       margin-bottom: .5rem;
+       flex-wrap: nowrap;
+       place-content: space-between;
+       border: 0;
+       margin: 0;
+       padding: 0 .5rem .5rem .5rem;
 }
 
-form div:only-child,
-form div:last-child,
-form div:last-of-type {
-       margin-bottom: 0;
+#dashboard .panel:only-child,
+#dashboard .panel:first-child,
+#dashboard .panel:first-of-type {
+       padding-top: .5rem;
 }
 
-form header div.error {
-       width: calc(50% + 10rem);
-       margin: 0 auto;
+
+#dashboard .panel:only-child,
+#dashboard .panel:last-child,
+#dashboard .panel:last-of-type {
+       padding-bottom: .5rem;
+}*/
+
+#dashboard .candidate section,
+#dashboard .location section {
+       flex-direction: column;
+       flex-grow: 1;
+       border: .1rem solid #00c3f9;
+       border-radius: .3rem;
+       padding: 0;
 }
 
-form section div.error {
-       margin-top: .25rem;
+#dashboard .location h4 {
+       border-width: 0;
 }
 
+/*#dashboard .grid {
+       display: flex;
+       flex-flow: row wrap;
+       border-style: solid;
+       border-color: #00c3f9;
+       border-radius: .2rem;
+       flex-grow: 1;
+       box-sizing: border-box;
+       border-collapse: collapse;
+       gap: .1rem;
+}*/
 
-/*form section div.error {
-       margin: 0 1rem;
+       /*margin: 0;
+#dashboard .grid:only-child,
+#dashboard .grid:last-child,
+#dashboard .grid:last-of-type {
+       margin-bottom: 0;
 }*/
 
+/*#dashboard .candidate .grid,
+#dashboard .location .grid {
+       padding: .5rem;
+}*/
 
-label {
-       min-width: 10rem;
-       font-size: .85rem;
-       padding: .2rem 1rem .2rem 0;
-       text-align: right;
-       white-space: nowrap;
+#dashboard .dlgrid {
+       display: flex;
+       flex-flow: row wrap;
+       gap: .5rem;
 }
 
-button,
-input,
-select,
-option,
-optgroup,
-textarea {
-       box-sizing: border-box;
-       width: 100%;
-       padding: .1rem;
-       border: .05rem solid #00c3f9;
+#dashboard dl {
+       /*margin: .5rem;
+       padding: .25rem;
+       border: .1rem solid #00c3f9;
        border-radius: .2rem;
-       font-size: .8rem;
-       color: #066;
-       background-color: transparent;
-}
-
-button.submit {
-       width: 25%;
-       min-width: 8rem;
-       margin: 0 auto;
-       padding: .2rem .1rem;
+       flex-grow: 1;
+       box-sizing: border-box;
+       border-collapse: collapse;*/
+       margin: 0 .5rem .5rem .5rem;
 }
 
-/* Vertical form */
-form.col {
+#dashboard dl:first-child,
+#dashboard dl:only-child,
+#dashboard dl:first-of-type {
+       margin-top: .5rem;
 }
 
-form.col div {
-       flex-direction: column;
+#dashboard dt {
+       font-size: .9rem;
+       font-weight: bold;
 }
 
-form.col div.error {
-       flex-direction: row;
+#dashboard dd {
+       font-size: .9rem;
+       margin-left: 1rem;
 }
 
-form.col label {
-       text-align: center;
-       padding-right: 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: border-box;
+       border-collapse: collapse;
+       margin: .5rem;
 }
 
-form.col section {
-       padding: 0;
+#dashboard .subgrid:only-child,
+#dashboard .subgrid:last-child,
+#dashboard .subgrid:last-of-type {
+       margin-bottom: 0;
 }
 
-form.col section section {
-       width: auto;
+#dashboard .cell {
+       border-color: inherit;
+       border-style: inherit;
+       border-width: .1rem;
+       border-radius: inherit;
+       flex-grow: inherit;
+       box-sizing: inherit;
+       border-collapse: inherit;
 }
 
-form.col div.date {
-       flex-direction: row;
-       justify-content: space-between;
+#dashboard .subgrid .cell {
+       border-radius: 0;
+       border-width: 0 .1rem .1rem 0;
 }
-
-/* Dashboard */
-#dashboard .panel,
-#location .panel,
-#session .panel,
-#user .panel {
-       display: flex;
-       flex-direction: row;
-       flex-wrap: nowrap;
-       place-content: space-between;
-       border: 0;
-       margin: 0 0 .5rem 0;
-       padding: 0;
+#dashboard .subgrid .cell:only-child,
+#dashboard .subgrid .cell:last-child,
+#dashboard .subgrid .cell:last-of-type {
+       border-radius: inherit;
 }
 
-#dashboard .panel:only-child,
-#dashboard .panel:last-child,
-#dashboard .panel:last-of-type,
-#location .panel:only-child,
-#location .panel:last-child,
-#location .panel:last-of-type,
-#session .panel:only-child,
-#session .panel:last-child,
-#session .panel:last-of-type,
-#user .panel:only-child,
-#user .panel:last-child,
-#user .panel:last-of-type {
-       margin-bottom: 0;
+#dashboard .fourth {
+       min-height: 5rem;
+       width: calc(100% / 4 - (3/4*.1rem));
 }
 
-#dashboard .grid,
-#location .grid,
-#session .grid,
-#user .grid {
-       display: table;
-       line-height: normal;
-       padding: 0;
-       flex-grow: 1;
-       table-layout: fixed;
-       border: 0 none;
-       /*width: calc(100% - 12rem);
-       border-collapse: collapse;*/
-       width: calc(100% - 12rem);
-       border-collapse: collapse;
+#dashboard .seventh {
+       min-height: 5rem;
+       width: calc(100% / 7 - (6/7*.1rem));
 }
 
-#dashboard .cell,
-#location .cell,
-#session .cell,
-#user .cell {
-       display: table-cell;
-       text-align: left;
-       padding: .5rem;
-       flex-grow: 1;
-       border: .05rem solid #00c3f9;
-       height: 6rem;
+#dashboard .third {
+       min-height: 5rem;
+       width: calc(100% / 3 - (2/3*.1rem));
 }
 
-#dashboard .form,
-#location .form,
-#session .form,
-#user .form {
+#dashboard .session {
        border: .1rem solid #00c3f9;
        border-radius: .2rem;
-       padding: .5rem;
-       margin-left: .5rem;
-       width: 10rem;
-}
-
-#dashboard .form label,
-#dashboard .form input,
-#dashboard .form button,
-#location .form label,
-#location .form input,
-#location .form button,
-#session .form label,
-#session .form input,
-#session .form button,
-#user .form label,
-#user .form input,
-#user .form button {
-       text-align: center;
-       min-width: 6rem;
+       white-space: nowrap;
+       display: flex;
+       flex-direction: row;
+       justify-content: space-between;
+       padding: .1rem;
 }
 
-
-#dashboard .seventh,
-#location .seventh,
-#session .seventh,
-#user .seventh {
-       width: calc(100% / 7);
+#dashboard .session a {
+       overflow-x: hidden;
+       text-overflow: ellipsis;
 }
 
-#dashboard .third,
-#location .third,
-#session .third,
-#user .third {
-       width: calc(100% / 3);
-       height: auto;
+#dashboard .session a:first-letter {
+       color: #066;
 }
 
-#dashboard .disabled,
-#location .disabled,
-#session .disabled,
-#user .disabled {
-       color: #acc;
-       background-color: #bee;
+#dashboard .disabled {
+       /*color: #acc;
+       background-color: #bee;*/
+       filter: grayscale(33%);
 }
 
-#dashboard .current,
-#location .current,
-#session .current,
-#user .current {
+#dashboard .current {
        background-color: #cff;
 }
 
-#dashboard .next,
-#location .next,
-#session .next,
-#user .next {
-       background-color: #eff;
+#dashboard .current h3 {
+       text-decoration: underline solid #00c3f9;
 }
 
-#dashboard .session,
-#location .session,
-#session .session,
-#user .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,
-#location .pending,
-#session .pending,
-#user .pending {
+#dashboard .pending {
        background-color: #ccc;
 }
 
-#dashboard .granted,
-#location .granted,
-#session .granted,
-#user .granted {
+#dashboard .granted {
        background-color: #cff;
        /*background-color: #33b679;
        border-color: #33b679;*/
 }
 
-#dashboard .disputed,
-#location .disputed,
-#session .disputed,
-#user .disputed {
+#dashboard .disputed {
        background-color: #fcc;
 }
 
-#dashboard .orphaned,
-#location .orphaned,
-#session .orphaned,
-#user .orphaned {
+#dashboard .orphaned {
        background-color: #fc9;
 }
 
-#dashboard .highlight,
-#location .highlight,
-#session .highlight,
-#user .highlight {
+#dashboard .highlight {
        border-color: #3333c3;
        background-color: #c3c3f9;
        color: #3333c3;
 }
 
-/* Session */
-#session {
+/* Weather
+ * TODO: drop
+>24°C
+#dashboard .cleary a::before {
+       content: "☀";
 }
 
-#session h2 a::after {
-       content: " >";
+>17°C
+#dashboard .sunny a::before {
+       content: "⛅";
 }
 
-#session h2 a:last-child::after {
-       content: none;
+>10°C
+#dashboard .cloudy a::before {
+       content: "☁";
 }
 
-#session .row {
-       display: flex;
-       flex-wrap: wrap;
-       margin-bottom: .5rem;
-       border: .1rem solid #00c3f9;
-       border-radius: .2rem;
+<=10°C
+#dashboard .winty a::before {
+       content: "❄️";
 }
 
-#session .sub {
-       display: flex;
-       flex-direction: column;
-       line-height: normal;
-       margin-bottom: .5rem;
-       margin-top: .5rem;
-       padding: .5rem;
-       border: .1rem solid #00c3f9;
-       border-radius: .2rem;
+>0mm
+#dashboard .rainy a::before {
+       content: "🌂";
 }
 
-#session .grid dd dd {
-       text-indent: .5rem;
-}
+>2mm
+#dashboard .stormy a::before {
+       content: "☔";
+}*/
 
 /* Regulation */
 #regulation {
 }
 
-
-/*#regulation div {
-       display: flex;
-       flex-direction: row;
-       justify-content: space-around;
-       margin-bottom: .5rem;
-}
-
-#regulation div:only-child,
-#regulation div:last-child,
-#regulation div:last-of-type {
-       margin-bottom: 0;
-}*/
-/*
- * 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 dl {
        /*display: flex;
        flex-direction: row;
@@ -764,7 +779,7 @@ form.col div.date {
 /* Footer */
 #footer {
        border: .1rem solid #00c3f9;
-       Border-radius: .5rem;
+       border-radius: .5rem;
        margin: .5rem;
        margin-top: 0;
        padding: .5rem;
@@ -787,42 +802,105 @@ form.col div.date {
        display: none;
 }
 
+#footer ul {
+       list-style: none inside none;
+       margin: 0;
+}
+
 /* viewport responsive hack */
-@media ( max-width: 850px ) {
-       #header {
-               flex-wrap: wrap;
+@media ( max-width: 900px ) {
+       .panel {
+               place-content: center;
+               flex-flow: column wrap;
        }
 
-       #location .panel,
-       #session .panel,
-       #user .panel {
-               place-content: center;
+       .form {
+               flex-direction: row;
+       }
+
+       form label {
+               width: 6rem;
+               line-height: 2rem;
+       }
+
+       form input,
+       form option,
+       form optgroup,
+       form select,
+       form textarea,
+       form section section {
+               width: 20rem;
+               line-height: 2rem;
+       }
+
+       form button {
+               width: 6rem;
+               line-height: 2rem;
+       }
+
+       .col label,
+       .col input,
+       .col option,
+       .col optgroup,
+       .col select,
+       .col textarea {
+               width: 12rem;
+       }
+
+       .col button {
+               width: 12rem;
+       }
+
+       #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 - (3/4*.1rem));
+       }
+
+       #dashboard .seventh:nth-child(7n+5),
+       #dashboard .seventh:nth-child(7n+6),
+       #dashboard .seventh:nth-child(7n+7) {
+               width: calc(100% / 3 - (2/3*.1rem));
+       }
+}
+
+@media ( max-width: 600px ) {
+       form label {
+               margin: 0 auto;
+       }
+
+       form input,
+       form option,
+       form optgroup,
+       form select,
+       form textarea,
+       form section section {
+               width: 14rem;
+               margin: 0 auto;
+       }
+
+       #header {
                flex-direction: column;
-               flex-wrap: wrap;
        }
 
-       #location .panel:only-child,
-       #location .panel:last-child,
-       #location .panel:last-of-type,
-       #session .panel:only-child,
-       #session .panel:last-child,
-       #session .panel:last-of-type,
-       #user .panel:only-child,
-       #user .panel:last-child,
-       #user .panel:last-of-type {
-               margin-bottom: .5rem;
+       #dashboard .seventh:nth-child(n) {
+               width: calc(100% / 2 - .1rem);
        }
 
-       #location .form,
-       #session .form,
-       #user .form {
-               width: auto;
-               margin: .5rem auto 0 auto;
+       #dashboard .seventh:nth-child(7n) {
+               width: calc(100%);
+       }
+}
+
+@media ( max-width: 450px ) {
+       form .row,
+       .grid,
+       .form {
+               flex-direction: column;
        }
 
-       #location .grid,
-       #session .grid,
-       #user .grid {
+       #dashboard .seventh:nth-child(n) {
                width: calc(100%);
        }
 }