-# Copyright 2014, 2016, 2019 Paul Hänsch
+# Copyright 2014, 2016, 2019, 2021 Paul Hänsch
#
# This file is part of Confetti.
#
N) printf %s "Name";;
n_pre) printf %s "Titel";;
n_first) printf %s "Vorname";;
- n_middle) printf %s "Mittelnamen";;
+ n_middle) printf %s "Mittel­namen";;
n_last) printf %s "Nachname";;
n_post) printf %s "Zusätze";;
- NICKNAME) printf %s "Spitzname";;
- SOUND) printf %s "Aussprache";;
- GENDER) printf %s "Geschlecht";;
+ NICKNAME) printf %s "Spitz­name";;
+ SOUND) printf %s "Aus­sprache";;
+ GENDER) printf %s "Ge­schlecht";;
KIND) printf %s "Typ";;
TITLE) printf %s "Beruf";;
ROLE) printf %s "Position";;
- ORG) printf %s "Organisation";;
+ ORG) printf %s "Orga­ni­sation";;
MEMBER) printf %s "Mitglied";;
CATEGORIES) printf %s "Kategorien";;
ANNIVERSARY) printf %s "Jubiläum";;
BDAY) printf %s "Geburtstag";;
EMAIL) printf %s "E-Mail";;
TEL) printf %s "Telefon";;
- teltype) printf %s "Anschlusstyp:";;
+ teltype) printf %s "Anschluss­typ:";;
TYPE=HOME) printf %s "Privat";;
- TYPE=WORK) printf %s "Geschäftlich";;
+ TYPE=WORK) printf %s "Geschäft­lich";;
TYPE=CELL) printf %s "Mobil";;
TYPE=FAX) printf %s "Fax";;
IMPP) printf %s "Chat";;
hi_status) printf %s "Ver­sich­er­ten­sta­tus";;
X-HEALTH-INSURANCE-NOCONTRIB) printf %s "Zu­zahl­ungs­be­frei­ung";;
X-CLIENT-REFERRAL) printf %s "Empfehl­ung durch";;
- prescriptions) printf %s "Verordnungen";;
- new_prescription) printf %s "Neue Verordnung";;
+ prescriptions) printf %s "Verord­nungen";;
+ new_prescription) printf %s "Neue Verord­nung";;
no_icd) printf %s "Kein ICD Code";;
- X-ZACK-JOINDATE) printf %s "An­mel­de­da­tum";;
- X-ZACK-LEAVEDATE) printf %s "Ab­mel­de­da­tum";;
+ X-ZACK-JOINDATE) printf %s "Anmelde­datum";;
+ X-ZACK-LEAVEDATE) printf %s "Abmelde­datum";;
X-ZACK-JOINDATE_short) printf %s "Anm.";;
X-ZACK-LEAVEDATE_short) printf %s "Abm.";;
edit_categories) printf %s "Kategorien Bearbeiten";;
vcf_export) printf %s "Vcard Exportieren";;
control) printf %s "Aktionen";;
+ delete) printf %s "entfernen";;
edit_update) printf %s "Daten übernehmen";;
edit_cancel) printf %s "Abbrechen";;
edit_delete) printf %s "Eintrag löschen";;
filter_street) printf %s "Straße";;
filter_zip) printf %s "PLZ.";;
filter_TEL) printf %s "Telefon";;
- filter_BDAY) printf %s "Geburtsjahr";;
- filter_bdate) printf %s "Geburtsdatum";;
+ filter_BDAY) printf %s "Geburts­jahr";;
+ filter_bdate) printf %s "Geburts­datum";;
filter_course) printf %s "Kurs";;
filter_CATEGORIES) printf %s "Kategorien";;
filter_apply) printf %s "Filtern";;
filter_cancel) printf %s "Filter löschen";;
newcard) printf %s "Neuen Eintrag anlegen";;
- course_attendance) printf %s "Kursteilnahme";;
+ course_attendance) printf %s "Kurs­teil­nahme";;
gender_none) printf %s "keine Angabe";;
gender_female) printf %s "Weiblich";;
done)
]
[div .control
- [select .item name="newfield"
- [option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)]
- $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE; do
- printf '[option value="%s" %s] ' "$f" "$(l10n "$f")"
- done)
- ][button .item type="submit" name="action" value="addfield" $(l10n edit_addfield)]
+ [div .item .delete label="$(l10n edit_delete)"
+ [input type="checkbox" #delete]
+ [label for="delete" $(l10n edit_delete)]
+ [button type="submit" name="action" value="delete" $(l10n edit_delete)]
+ ]
+ [div .item .newfield
+ [select name="newfield"
+ [option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)]
+ $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE; do
+ printf '[option value="%s" %s] ' "$f" "$(l10n "$f")"
+ done)
+ ][button type="submit" name="action" value="addfield" $(l10n edit_addfield)]
+ ]
[button .item type="submit" name="action" value="update" $(l10n edit_update)]
- [input type="checkbox" #delete] [label .item for="delete" $(l10n edit_delete)]
- [button .item type="submit" name="action" value="delete"]
[button .item type="submit" name="action" value="cancel" $(l10n edit_cancel)]
]
[input type="hidden" name="UID" value="$(pdi_value "$card" UID |HTML)"]
-# Copyright 2014 - 2019 Paul Hänsch
+# Copyright 2014 - 2019, 2021 Paul Hänsch
#
# This file is part of Confetti.
#
[legend $(l10n filter_item):]
$(for field in any name street zip TEL BDAY CATEGORIES; do
- printf '[input id="%s%i" type="radio" name="filter_type%i" value="%s" %s]
- [label for="%s%i" %s ]' \
+ printf '[input id="%s%i" type="radio" name="filter_type%i" value="%s" %s][label for="%s%i" %s ]' \
"$field" "$n" "$n" "$field" "$([ "$1" = "$field" ] && printf checked )" \
"$field" "$n" "$(l10n filter_$field)"
done)
cnt="$(pdi_count "$card" "$item")"
case $item in
- FN) printf '[h2 .item .FN ­%s]' "$(pdi_value "$card" FN |unescape |HTML)"
+ FN) printf '[h2 .item .FN . %s]' "$(pdi_value "$card" FN |unescape |HTML)"
;;
- GENDER) printf '[span .item .GENDER ­%s]' "$(pdi_value "$card" GENDER |l10n)"
+ GENDER) printf '[span .item .GENDER . %s]' "$(pdi_value "$card" GENDER |l10n)"
;;
NICKNAME) seq 1 $cnt |while read c; do
- printf '[span .item .NICKNAME ­aka. "%s"]' \
+ printf '[span .item .NICKNAME . aka. "%s"]' \
"$(pdi_value "$card" NICKNAME $c |unescape |HTML)"
done
;;
EMAIL)
[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n EMAIL)"
seq 1 $cnt |while read c; do
- printf '[a .item .EMAIL href="mailto:%s" ­%s]' \
+ printf '[a .item .EMAIL href="mailto:%s" . %s]' \
"$(pdi_value "$card" EMAIL $c |unescape |HTML)" \
"$(pdi_value "$card" EMAIL $c |unescape |HTML)"
done
seq 1 $cnt |while read c; do
teltype="$(pdi_attrib "$card" TEL $c TYPE)"
[ "$teltype" ] \
- && printf '[span .item .TEL [span .type ­%s:] %s]' \
+ && printf '[span .item .TEL [span .type . %s:] %s]' \
"$(l10n "TYPE=$teltype" |HTML)" \
"$(pdi_value "$card" TEL $c |unescape |HTML)" \
- || printf '[span .item .TEL ­%s]' \
+ || printf '[span .item .TEL . %s]' \
"$(pdi_value "$card" TEL $c |unescape |HTML)"
done
;;
*)[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n "$item")"
seq 1 $cnt |while read c; do
- printf '[span .item .%s ­%s]' "$item" \
+ printf '[span .item .%s . %s]' "$item" \
"$(pdi_value "$card" "$item" $c |unescape |HTML)"
done
;;
+++ /dev/null
-/*
-# Copyright 2014 Paul Hänsch
-#
-# This file is part of Confetti.
-#
-# Confetti is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Confetti is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Confetti. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-.sort {
- display: block;
- border: solid 1px;
- border-radius: 4px 4px 0 0 ;
- margin: .5em 2em .25em 2em;
- padding: .25em 2ex .25em 2ex;
- background: #EFF;
-}
-.sort .label {
- font-weight: bold;
-}
-
-.newcourse {
- display: block;
- border: solid 1px;
- border-radius: 0 0 4px 4px;
- margin: .25em 2em 1em 2em;
- padding: .25em 2ex .25em 2ex;
- background: #EFF;
-}
-
-.course {
- display: block;
- position: relative;
- border: solid 1px;
- margin: .25em 2em;
- padding: 0 20ex 0 0;
- overflow: auto;
- background: #FFF;
- min-height: 9em;
-}
-.course .control {
- display: inline-block;
- position: absolute;
- top 0; right: 0;
- text-align: right;
- background: #EEF;
- margin: 0;
- height: 100%;
- width: 20ex;
- max-width: 33%;
- padding: .25em 1ex;
-}
-.course .control .item {
- display: inline-block;
- vertical-align: top;
- width: 100%;
- color: #008;
- margin: .25em 0 0 0;
- border: 1px solid black;
- background: #FFF;
-}
-.course .control a.item {
- border-right: 3px double;
- padding: .125em 1ex;
-}
-.course .control a.item:hover{
- border-right: 1px solid;
-}
-
-.course .control .item[name=newfield] { width: 85%;}
-.course .control .item[value=addfield] { width: 15%;}
-
-.course .section {
- display: inline-block;
- vertical-align: top;
- float: left;
- width: 20ex;
- min-width: 16.5%;
- min-height: 6em;
- margin: .125em 0 .5ex 0;
- padding: 0 1ex .25em 1ex;
-}
-.course .section:nth-of-type(2n){ background: #EEE;}
-
-.course .section .item {
- display: block;
- max-width: 100%;
- word-wrap: break-word;
-}
-
-.course .section h2, .course .section h3 {
- font-size: 1em;
- display: block;
- font-weight: bold;
- margin: .25em -.5ex .25em -.5ex;
- border-style: none none solid none;
- border-width: 1px;
-}
-.course .section h2 {
- font-size: 1.2em;
- margin-top: 0;
-}
-
-.course .attendance {
- min-width: 66%;
-}
-.course .attendance a {
- display: inline-block;
- vertical-align: top;
- min-width: 13.5ex;
- width: 19%;
- color: #008;
- border-style: solid;
- border-width: 1px;
- margin: .25em .125ex .25em .125ex;
- padding: .125em 1ex .125em 1ex;
- background: #EFF;
-}
-
-.course .dtstart { width: 37ex; }
-.course .dtstart .DTSYEAR,
-.course .dtstart .DTSMONTH,
-.course .dtstart .DTS{
- font-size: .875em;
- margin: .25em .25ex 1em .25ex;
- display: inline-block;
- text-align: center;
- font-weight: bold;
-}
-
-.course .dtstart .DTSYEAR{ width: 11.5ex; }
-.course .dtstart .DTSMONTH{ width: 18.5ex; }
-.course .dtstart .DTS{ width: 5.5ex; }
-
-.course .dtstart .DTSCAL,
-.course .dtstart .DTSCALHEAD {
- display: inline-block;
- overflow: hidden;
- text-align: center;
- width: 5ex;
- margin: 0;
-}
-.course .dtstart .DTSCALHEAD {
- font-weight: bold;
- border-top: 1px solid;
- border-bottom: 1px solid;
-}
-
-.course .dtstart input[name=DTSDAY] { display: none; margin: 0; height: 0; width: 0; }
-.course .dtstart input[name=DTSDAY]:checked + label.DTSCAL { font-weight: bold; border: solid 1px; }
-
-.course .dtstart .DTSTIME{
- display: inline-block;
- width: 10ex;
- font-weight: bold;
-}
-
-.course .recur{ width: 37ex; }
-.course .section select,
-.course .section button,
-.course .section input {
- border: 1px solid;
- margin: .5em 0;
-}
-
-.course .select_attendance {
- max-height: 17em;
- overflow-y: scroll;
-}
-.course .select_attendance label{
- display: block;
- position: relative;
- margin: 0; padding: 0;
- padding-left: 3ex;
-}
-.course .select_attendance label input{
- position: absolute;
- margin: 0; padding: 0;
- margin-left: -3ex;
- top: 0;
-}
-
-.course .section input[type="text"] { width: 100%; }
-.course .section textarea.COMMENT { min-height: 6em; width: 100%; overflow: auto; }
-
attendance);;
COMMENT)[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n "$item")"
seq 1 $cnt |while read c; do
- printf '[p .item .%s ­%s]' "$item" \
+ printf '[p .item .%s . %s]' "$item" \
"$(pdi_value "$course" "$item" $c |unescape |HTML)"
done
;;
*)[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n "$item")"
seq 1 $cnt |while read c; do
- printf '[span .item .%s ­%s]' "$item" \
+ printf '[span .item .%s . %s]' "$item" \
"$(pdi_value "$course" "$item" $c |unescape |HTML)"
done
;;
+++ /dev/null
-* {
- font-family: sans-serif;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- padding: 0; margin: 0;
- font-size: initial;
- line-height: 1.25em;
- z-index: 0;
-}
-
-input, textarea, select, select * {
- font-size: .875em;
- padding: .125em .125em;
-}
-input, select {
- height: 1.5em;
- vertical-align: bottom;
-}
-button { padding: 0 .5em; }
-
-body {
- background: #EEE;
- margin: 0;
- padding: 0;
- padding-top: 2.5em;
- position: absolute;
- min-height: 100%;
- width: 100%;
- padding-bottom: 2em;
-}
-.NAVIGATION {
- position: fixed;
- top: 0;
- display: inline-block;
- border-style: none solid solid solid;
- border-width: 0 1px 1px 1px;
- border-radius: 0 0 4px 4px;
- margin: 0 2em;
- padding: .5em 1ex;
- background: #FFF;
- z-index: 1;
-}
-.NAVIGATION label,
-.NAVIGATION a {
- color: #008;
- border: solid 1px #BBF;
- margin: .5em .5ex .25em .5ex;
- padding: .2em 3ex .2em 3ex;
- background: #EFF;
-}
-.NAVIGATION label:hover,
-.NAVIGATION a:hover {
- border-width: 2px 1px;
- background: #F3FFFF;
-}
-
-#CONFIGURE label[for="navigationconfig"] { display: none; }
-#CONFIGURE:target label[for="navigationconfig"] { display: inline; }
-
-.NAVIGATION input#navigationconfig { display: none; }
-.NAVIGATION input + form.config {
- position: static;
- display: none;
-}
-
-.NAVIGATION .config a { display: block; }
-.NAVIGATION .config a:hover { border-width: 1px 2px; }
-.NAVIGATION input:checked + form.config { display: block; }
-.NAVIGATION .config input[type=text],
-.NAVIGATION .config button {
- font-size: .875em;
- line-height: 1.5em;
- height: 1.75em;
- padding: 0 .25em;
- vertical-align: bottom;
- border: 1px solid #000;
- background-color: #FFF;
-}
-.NAVIGATION .config input[type=text] {
- margin: .25em 0 0 .375em;
- border-right: none;
- width: 70%;
-}
-.NAVIGATION .config button {
- min-width: 2.5em;
- text-align: center;
- max-width: 30%;
-}
-.NAVIGATION .config button[value=del] {
- background: #FCC;
-}
-
-#message {
- display: block;
- position: fixed;
- top: 0; width: 100%;
- margin: 0; padding: 1em;
- text-align: center;
- font-weight: bold;
- background-color: #FAA;
- border: 1px solid #000;
- border-style: none none solid none;
-}
-
-.trailbtn { display: none; }
-.trailbtn + .trailbox { display: none; }
-.trailbtn:checked + .trailbox { display: inline-block; }
-.trailbtn:checked + .trailbox + .trailbtn { display: block; }
-.trailbtn:checked + .trailbox + .trailbtn:before {
- display: block; content: '+';
- width: 3ex; text-align: center;
- margin-top: .25em; padding: .25em 0;
- background-color: #FFF;
- border-width: 1px; border-style: solid;
-}
-.trailbtn:checked + .trailbox + .trailbtn:checked,
-.trailbtn:checked { display: none; }
-
-#footer {
- width: 100%;
- background-color: #FFF;
- border-top: 1px solid #BBF;
- margin: 0; padding: .5em 2em;
- position: absolute; bottom: 0;
-}
--- /dev/null
+style_new.css
\ No newline at end of file
--- /dev/null
+* {
+ font-family: sans-serif;
+ font-weight: normal;
+ font-size: initial;
+ font-style: normal;
+ text-decoration: none;
+ line-height: 1.5em;
+ color: inherit; background: transparent;
+ padding: 0; margin: 0;
+ border: none;
+}
+
+body {
+ color: #000; background-color: #FFF;
+}
+
+p { margin-bottom: 1em; }
+
+a {
+ text-decoration: underline;
+ font-style: italic;
+ color: #068;
+}
+
+i, em { font-style: italic; }
+b, strong { font-weight: bolder; }
+ul, ol { margin-left: 1.125em; }
+
+h1, h2, h3 {
+ font-weight: bold;
+ margin-top: 1em;
+ margin-bottom: .5em;
+}
+
+h1:first-child, h2:first-child, h3:first-child,
+p + h1, p + h2, p + h3 {
+ margin-top: 0;
+}
+
+h4, h5, h6, form legend {
+ font-weight: bolder;
+ margin-bottom: .25em;
+}
+
+h1 { font-size: 1.5em; }
+h2 { font-size: 1.125em; }
+
+select, input, button, textarea,
+.control a {
+ display: inline-block;
+ background-color: #FFF;
+ border: 1pt solid;
+ padding: .25em .75em;
+ vertical-align: text-bottom;
+}
+.control a {
+ color: inherit;
+ font-style: normal;
+ text-decoration: none;
+}
+
+select { padding: .375em 0; }
+
+input[type=radio], input[type=checkbox] {
+ vertical-align: baseline;
+}
+
+button, input[type=button],
+.control a {
+ box-shadow: .125em .125em .25em;
+}
+
+label { margin-right: .75em; }
+input + label {
+ margin-left: .375em;
+}
+
+body > form,
+div.card,
+div.courselist {
+ position: relative;
+ width: 98%; width: calc(100% - 2em);
+ margin-left: auto; margin-right: auto;
+ margin-bottom: 1em;
+ box-shadow: .125em .125em .25em;
+ z-index: 1;
+}
+
+/* HACK: put anchor point 10em above card and highlight target element */
+ div:target { box-shadow: none; z-index: 0; }
+ div:target:before {
+ content: '';
+ display: block;
+ margin-top: -10em;
+ height: 10em;
+ visibility: hidden;
+ }
+ div:target:after {
+ content: '';
+ display: block;
+ position: absolute;
+ left: 0; right: 0;
+ top: 10em; bottom: 0;
+ box-shadow: .125em .125em .25em;
+ animation: highlight 4s;
+ z-index: -1;
+ }
+ @keyframes highlight { from { background-color: #FF0; } to { background-color: transparent; } }
+/**/
+
+div .section, form .section {
+ display: block;
+ vertical-align: top;
+ padding: 0 1em;
+ overflow: hidden;
+ word-break: break-word;
+}
+
+div .section :last-child, form .section :last-child {
+ margin-bottom: 1em;
+}
+
+div .section h2, form .section h2,
+div .section h3, form .section h3 {
+ border-bottom: 1pt solid #EEE;
+}
+div .control, form .control {
+ background-color: #EEE;
+ padding: .25em;
+ text-align: right;
+}
+
+@media(min-width: 60em) {
+ div .section, form .section {
+ display: table-cell;
+ width: calc(100% / 10);
+ }
+ div .section :last-child { margin-bottom: 0; }
+ div .control, form .control {
+ background-color: transparent;
+ }
+ div .section:nth-of-type(2n) {
+ background-color: #EEE;
+ }
+}
+@media(min-width: 80em) {
+ div .control, form .control {
+ display: table-cell;
+ width: calc(100% / 10);
+ }
+ div .control .item, form .control .item {
+ display: block;
+ margin-bottom: .25em;
+ }
+}
+
+div .section .item, form .section .item,
+form .section.attendance > label {
+ display: block;
+ width: 100%;
+}
+
+form .section .item {
+ margin-bottom: .25em;
+}
+
+form .section button[value^=addfield] {
+ font-size: .75em;
+ margin-top: .5em; padding: 0 .375em;
+}
+
+form input.delete { display: none; }
+form input.delete + label {
+ float: right;
+ font-size: .75em;
+ line-height: 1;
+ max-width: .75em; height: .875em; overflow: hidden;
+ color: #FBB; background-color: #444;
+ margin: 0; padding: .125em .5em 0 .5em;
+ border-radius: 4pt 4pt 0 0;
+ transition: max-width .3s;
+}
+form input.delete + label:before { content: '\274c '; margin-right: .5em; }
+form input.delete + label:hover { max-width: 10em; }
+-form input.delete + label:hover:before { content: ''; }
+-form input.delete + label:hover:after { content: ' \274c'; }
+form input.delete:checked + label,
+form input.delete:checked + label + * {
+ display: none;
+}
+
+form .control {
+ position: relative;
+ padding-left: 11em;
+ padding-top: 1.5em;
+}
+form .control .item {
+ display: inline-block;
+ margin-bottom: .25em;
+ vertical-align: text-bottom;
+}
+
+form .control .item.newfield {
+ box-shadow: .125em .125em .25em;
+}
+form .control .item.newfield select {
+ margin-right: -1pt;
+}
+form .control .item.newfield button {
+ box-shadow: none;
+}
+
+form .control .item.delete {
+ position: absolute;
+ bottom: .375em; left: .25em; width: auto;
+ padding-bottom: calc(2.25em + 2pt);
+}
+
+@media(min-width: 80em) {
+ form .control { padding: .25em; min-height: 16em; }
+ form .control .item { width: 100%; }
+ form .control .item.newfield select { width: calc(100% - 2.5em); }
+ form .control .item.delete { bottom: .125em; right: .25em; }
+}
+form .control .item.delete input + label + button {
+ display: none;
+ position: absolute;
+ bottom: 0; width: 100%;
+ color: #800;
+ background-color: #FEE;
+ z-index: 1;
+}
+form .control .item.delete:after {
+ content: attr(label);
+ display: block;
+ position: absolute;
+ bottom: 0; width: 100%;
+ text-align: center;
+ color: #BAA;
+ padding: .25em 0;
+ border: 1pt solid;
+ box-shadow: .125em .125em .25em;
+}
+form .control .item.delete input:checked + label + button { display: block; }
+* {
+ font-family: sans-serif;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0; margin: 0;
+ font-size: initial;
+ line-height: 1.25em;
+ z-index: 0;
+}
+
+input, textarea, select, select * {
+ font-size: .875em;
+ padding: .125em .125em;
+}
+input, select {
+ height: 1.5em;
+ vertical-align: bottom;
+}
+button { padding: 0 .5em; }
+
+body {
+ background: #EEE;
+ margin: 0;
+ padding: 0;
+ padding-top: 2.5em;
+ position: absolute;
+ min-height: 100%;
+ width: 100%;
+ padding-bottom: 2em;
+}
+.NAVIGATION {
+ position: fixed;
+ top: 0;
+ display: inline-block;
+ border-style: none solid solid solid;
+ border-width: 0 1px 1px 1px;
+ border-radius: 0 0 4px 4px;
+ margin: 0 2em;
+ padding: .5em 1ex;
+ background: #FFF;
+ z-index: 1;
+}
+.NAVIGATION label,
+.NAVIGATION a {
+ color: #008;
+ border: solid 1px #BBF;
+ margin: .5em .5ex .25em .5ex;
+ padding: .2em 3ex .2em 3ex;
+ background: #EFF;
+}
+.NAVIGATION label:hover,
+.NAVIGATION a:hover {
+ border-width: 2px 1px;
+ background: #F3FFFF;
+}
+
+#CONFIGURE label[for="navigationconfig"] { display: none; }
+#CONFIGURE:target label[for="navigationconfig"] { display: inline; }
+
+.NAVIGATION input#navigationconfig { display: none; }
+.NAVIGATION input + form.config {
+ position: static;
+ display: none;
+}
+
+.NAVIGATION .config a { display: block; }
+.NAVIGATION .config a:hover { border-width: 1px 2px; }
+.NAVIGATION input:checked + form.config { display: block; }
+.NAVIGATION .config input[type=text],
+.NAVIGATION .config button {
+ font-size: .875em;
+ line-height: 1.5em;
+ height: 1.75em;
+ padding: 0 .25em;
+ vertical-align: bottom;
+ border: 1px solid #000;
+ background-color: #FFF;
+}
+.NAVIGATION .config input[type=text] {
+ margin: .25em 0 0 .375em;
+ border-right: none;
+ width: 70%;
+}
+.NAVIGATION .config button {
+ min-width: 2.5em;
+ text-align: center;
+ max-width: 30%;
+}
+.NAVIGATION .config button[value=del] {
+ background: #FCC;
+}
+
+#message {
+ display: block;
+ position: fixed;
+ top: 0; width: 100%;
+ margin: 0; padding: 1em;
+ text-align: center;
+ font-weight: bold;
+ background-color: #FAA;
+ border: 1px solid #000;
+ border-style: none none solid none;
+}
+
+.trailbtn { display: none; }
+.trailbtn + .trailbox { display: none; }
+.trailbtn:checked + .trailbox { display: inline-block; }
+.trailbtn:checked + .trailbox + .trailbtn { display: block; }
+.trailbtn:checked + .trailbox + .trailbtn:before {
+ display: block; content: '+';
+ width: 3ex; text-align: center;
+ margin-top: .25em; padding: .25em 0;
+ background-color: #FFF;
+ border-width: 1px; border-style: solid;
+}
+.trailbtn:checked + .trailbox + .trailbtn:checked,
+.trailbtn:checked { display: none; }
+
+#footer {
+ width: 100%;
+ background-color: #FFF;
+ border-top: 1px solid #BBF;
+ margin: 0; padding: .5em 2em;
+ position: absolute; bottom: 0;
+}
/*
# Copyright 2014 - 2017 Paul Hänsch
#
padding: .25ex 0;
margin-top: -1px;
}
+/*
+# Copyright 2014 Paul Hänsch
+#
+# This file is part of Confetti.
+#
+# Confetti is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Confetti is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Confetti. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+.sort {
+ display: block;
+ border: solid 1px;
+ border-radius: 4px 4px 0 0 ;
+ margin: .5em 2em .25em 2em;
+ padding: .25em 2ex .25em 2ex;
+ background: #EFF;
+}
+.sort .label {
+ font-weight: bold;
+}
+
+.newcourse {
+ display: block;
+ border: solid 1px;
+ border-radius: 0 0 4px 4px;
+ margin: .25em 2em 1em 2em;
+ padding: .25em 2ex .25em 2ex;
+ background: #EFF;
+}
+
+.course {
+ display: block;
+ position: relative;
+ border: solid 1px;
+ margin: .25em 2em;
+ padding: 0 20ex 0 0;
+ overflow: auto;
+ background: #FFF;
+ min-height: 9em;
+}
+.course .control {
+ display: inline-block;
+ position: absolute;
+ top 0; right: 0;
+ text-align: right;
+ background: #EEF;
+ margin: 0;
+ height: 100%;
+ width: 20ex;
+ max-width: 33%;
+ padding: .25em 1ex;
+}
+.course .control .item {
+ display: inline-block;
+ vertical-align: top;
+ width: 100%;
+ color: #008;
+ margin: .25em 0 0 0;
+ border: 1px solid black;
+ background: #FFF;
+}
+.course .control a.item {
+ border-right: 3px double;
+ padding: .125em 1ex;
+}
+.course .control a.item:hover{
+ border-right: 1px solid;
+}
+
+.course .control .item[name=newfield] { width: 85%;}
+.course .control .item[value=addfield] { width: 15%;}
+
+.course .section {
+ display: inline-block;
+ vertical-align: top;
+ float: left;
+ width: 20ex;
+ min-width: 16.5%;
+ min-height: 6em;
+ margin: .125em 0 .5ex 0;
+ padding: 0 1ex .25em 1ex;
+}
+.course .section:nth-of-type(2n){ background: #EEE;}
+
+.course .section .item {
+ display: block;
+ max-width: 100%;
+ word-wrap: break-word;
+}
+
+.course .section h2, .course .section h3 {
+ font-size: 1em;
+ display: block;
+ font-weight: bold;
+ margin: .25em -.5ex .25em -.5ex;
+ border-style: none none solid none;
+ border-width: 1px;
+}
+.course .section h2 {
+ font-size: 1.2em;
+ margin-top: 0;
+}
+
+.course .attendance {
+ min-width: 66%;
+}
+.course .attendance a {
+ display: inline-block;
+ vertical-align: top;
+ min-width: 13.5ex;
+ width: 19%;
+ color: #008;
+ border-style: solid;
+ border-width: 1px;
+ margin: .25em .125ex .25em .125ex;
+ padding: .125em 1ex .125em 1ex;
+ background: #EFF;
+}
+
+.course .dtstart { width: 37ex; }
+.course .dtstart .DTSYEAR,
+.course .dtstart .DTSMONTH,
+.course .dtstart .DTS{
+ font-size: .875em;
+ margin: .25em .25ex 1em .25ex;
+ display: inline-block;
+ text-align: center;
+ font-weight: bold;
+}
+
+.course .dtstart .DTSYEAR{ width: 11.5ex; }
+.course .dtstart .DTSMONTH{ width: 18.5ex; }
+.course .dtstart .DTS{ width: 5.5ex; }
+
+.course .dtstart .DTSCAL,
+.course .dtstart .DTSCALHEAD {
+ display: inline-block;
+ overflow: hidden;
+ text-align: center;
+ width: 5ex;
+ margin: 0;
+}
+.course .dtstart .DTSCALHEAD {
+ font-weight: bold;
+ border-top: 1px solid;
+ border-bottom: 1px solid;
+}
+
+.course .dtstart input[name=DTSDAY] { display: none; margin: 0; height: 0; width: 0; }
+.course .dtstart input[name=DTSDAY]:checked + label.DTSCAL { font-weight: bold; border: solid 1px; }
+
+.course .dtstart .DTSTIME{
+ display: inline-block;
+ width: 10ex;
+ font-weight: bold;
+}
+
+.course .recur{ width: 37ex; }
+.course .section select,
+.course .section button,
+.course .section input {
+ border: 1px solid;
+ margin: .5em 0;
+}
+
+.course .select_attendance {
+ max-height: 17em;
+ overflow-y: scroll;
+}
+.course .select_attendance label{
+ display: block;
+ position: relative;
+ margin: 0; padding: 0;
+ padding-left: 3ex;
+}
+.course .select_attendance label input{
+ position: absolute;
+ margin: 0; padding: 0;
+ margin-left: -3ex;
+ top: 0;
+}
+
+.course .section input[type="text"] { width: 100%; }
+.course .section textarea.COMMENT { min-height: 6em; width: 100%; overflow: auto; }
+