🏠 🔑
Command - diff
diff --git a/.gitignore b/.gitignore
index 91480d1..650fc78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
 /shops
 /sems
 /users
+/git
 /bin
 /poems
 /sessions
diff --git a/components/menu.html b/components/menu.html
index 8448fad..a09a4a1 100644
--- a/components/menu.html
+++ b/components/menu.html
@@ -1,4 +1,4 @@
-<div class="_ f fic mkn">
+<div class="h f fic mt0">
 	<a class="$RB" href="/e/index">🏠</a>
 	$USER_ICON
 </div>
diff --git a/e/cart b/e/cart
index 6d474ed..8d33235 100755
--- a/e/cart
+++ b/e/cart
@@ -14,7 +14,7 @@ Products() {
 	while read product_id quantity; do
 		product_env $product_id
 		cat <<!
-<a class="card f vs b0 fic p" href="/e/product?shop_id=$shop_id&product_id=$product_id">
+<a class="card f v8 b0 fic p" href="/e/product?shop_id=$shop_id&product_id=$product_id">
 	`PImage $product_image_path`
 	<div class="tsxl">$product_title</div>
 	<div class="tsl">$quantity x $product_price€</div>
diff --git a/e/cart-edit b/e/cart-edit
index 5df9854..8d02e10 100755
--- a/e/cart-edit
+++ b/e/cart-edit
@@ -9,7 +9,7 @@ Products() {
 	while read product_id quantity; do
 		product_env $product_id
 		cat <<!
-<div class="card f vs b0 fic p">
+<div class="card f v8 b0 fic p">
 	`PImage $product_image_path`
 	<a class="tsxl" href="/e/product?shop_id=$shop_id&product_id=$product_id">$product_title</a>
 	<div class="f _s fic">
diff --git a/e/class b/e/class
index b3be245..3d6b3f3 100755
--- a/e/class
+++ b/e/class
@@ -8,7 +8,7 @@ Courses() {
 	for_each_in "$SCHOOL_PATH/courses" classes "$class_id" \
 		| SmallButtons course \&school_id=$school_id | cond || {
 		echo "<h2>`_ Courses`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
@@ -41,7 +41,7 @@ AssignGrades() {
 !
 		done | cond || {
 			echo "<h2>`_ "Assign grades"`</h2>"
-			cat $contents | fw s
+			cat $contents | fw 8
 		}
 	fi
 }
diff --git a/e/course b/e/course
index 8bb869b..c1c6374 100755
--- a/e/course
+++ b/e/course
@@ -14,7 +14,7 @@ Classes() {
 		fi
 	} | cond || {
 		echo "<h2>`_ Classes`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
@@ -22,7 +22,7 @@ Students() {
 	for_each_in "$SCHOOL_PATH/students" courses "$course_id" \
 		| SmallButtons student \&school_id=$school_id | cond || {
 		echo "<h2>`_ Students`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
diff --git a/e/index b/e/index
index fc371dd..717355f 100755
--- a/e/index
+++ b/e/index
@@ -11,6 +11,7 @@ case "$REQUEST_METHOD" in
 		export _SCHOOLS="`_ "Schools"`"
 		export _SHOPS="`_ "Shops"`"
 		export _SEM="`_ "Shared Expenses Manager"`"
+		export _SOURCE_CODE="`_ "Source Code"`"
 		export _TERMINAL="`_ "Terminal"`"
 		export _COMMANDS="`_ "Commands"`"
 		NormalCat
diff --git a/e/order b/e/order
index 42e2127..4a0cde8 100755
--- a/e/order
+++ b/e/order
@@ -67,7 +67,7 @@ Products() {
 	while read product_id quantity; do
 		product_env $product_id
 		cat <<!
-<a class="card f vs b0 fic p" href="/e/product?shop_id=$shop_id&product_id=$product_id">
+<a class="card f v8 b0 fic p" href="/e/product?shop_id=$shop_id&product_id=$product_id">
 	`PImage $product_image_path`
 	<div class="tsxl">$product_title</div>
 	`echo "$product_description" | csurround p`
diff --git a/e/product b/e/product
index 145fe1c..2f14e12 100755
--- a/e/product
+++ b/e/product
@@ -53,7 +53,7 @@ case "$REQUEST_METHOD" in
 		export product_title
 		export product_price
 		export product_stock
-		export PRODUCT_IMAGES="`echo "$product_images" | ProductImages | fw s`"
+		export PRODUCT_IMAGES="`echo "$product_images" | ProductImages | fw 8`"
 		export _STOCK="`_ Stock`"
 		
 		if [[ "$product_stock" != "0" ]]; then
diff --git a/e/sem b/e/sem
index 1e085a0..c7ca32c 100755
--- a/e/sem
+++ b/e/sem
@@ -8,6 +8,7 @@ case "$REQUEST_METHOD" in
 	GET)
 		export _TITLE="`_ $sem_id`"
 		export _SUBMIT="`_ Submit`"
+		export _DOWNLOAD="`_ Download`"
 		export _GRAPH="`_ Graph`"
 		export _DEBUG="`_ Debug`"
 		export _HUMAN="`_ Human`"
diff --git a/e/shop b/e/shop
index 76c8bd6..75bdd84 100755
--- a/e/shop
+++ b/e/shop
@@ -20,7 +20,7 @@ Products() {
 		fi
 
 		cat <<!
-<a class="card f vs b0 fic p $card_class" href="/e/product?shop_id=$shop_id&product_id=$product_id">
+<a class="card f v8 b0 fic p $card_class" href="/e/product?shop_id=$shop_id&product_id=$product_id">
 	`PImage $product_image_path`
 	<div class="tsl">$product_price€</div>
 	<span class="tsxl">$product_title</span>
diff --git a/e/shop-edit b/e/shop-edit
index d5ed98e..9321000 100755
--- a/e/shop-edit
+++ b/e/shop-edit
@@ -14,7 +14,7 @@ Products() {
 		if [[ "`cat $SHOP_PATH/$product_id/stock`" -gt 0 ]]; then
 			product_env $product_id
 			cat <<!
-<label class="card f vs b0 fic p">
+<label class="card f v8 b0 fic p">
 	`PImage $product_image_path`
 	<div class="tsl">$product_price€</div>
 	<a class="tsxl" href="/e/product?shop_id=$shop_id&product_id=$product_id">$product_title</a>
@@ -52,7 +52,7 @@ case "$REQUEST_METHOD" in
 		SHOP_OWNER="`cat $SHOP_PATH/.owner`"
 		export SHOP_BUTTONS="`ShopButtons`"
 		if im $SHOP_OWNER; then
-			export ADD_PRODUCT_BUTTON="<div class=\"tar\"><a class=\"tsxl round ps btn\" href=\"/e/product-add?shop_id=$shop_id\">+</a></div>"
+			export ADD_PRODUCT_BUTTON="<div class=\"tar\"><a class=\"tsxl round p8 btn\" href=\"/e/product-add?shop_id=$shop_id\">+</a></div>"
 			export EDIT_BTN="`EditBtn "/e/shop-edit?shop_id=$shop_id"`"
 		fi
 
diff --git a/e/student b/e/student
index e035b94..91ed993 100755
--- a/e/student
+++ b/e/student
@@ -16,7 +16,7 @@ Courses() {
 		fi
 	} | cond || {
 		echo "<h2>`_ Courses`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
@@ -30,7 +30,7 @@ Grades() {
 !
 	done | cond || {
 		echo "<h2>`_ Grades`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
diff --git a/e/teacher b/e/teacher
index 9bddb2d..492cdd9 100755
--- a/e/teacher
+++ b/e/teacher
@@ -11,14 +11,14 @@ teacher_things() {
 Classes() {
 	teacher_things classes | SmallButtons class \&school_id=$school_id | cond || {
 		echo "<h2>`_ Classes`</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
 Courses() {
 	teacher_things courses | SmallButtons course \&school_id=$school_id | cond || {
 		echo "<h2>`_ Courses` (`_ Regent`)</h2>"
-		cat $contents | fw s
+		cat $contents | fw 8
 	}
 }
 
diff --git a/htdocs/vss/c.txt b/htdocs/vss/color.txt
similarity index 100%
rename from htdocs/vss/c.txt
rename to htdocs/vss/color.txt
diff --git a/htdocs/vss/vss.config.h b/htdocs/vss/vss.config.h
index fbb1c4d..b03f3a6 100644
--- a/htdocs/vss/vss.config.h
+++ b/htdocs/vss/vss.config.h
@@ -2,28 +2,31 @@
 #define CONFIG_ROUND
 #define CONFIG_VARS
 #include "vss/vss.h"
+#define CF #c1c3da
+#define CM VAL(COLOR, 13)
 
-CALL(TEXT_SIZE, TS)
-CALL(BG_COLOR, CS)
-CALL(COLOR, CS)
-CALL(BO_COLOR, CS)
+ROUND
+ALL_FLEX
+CALL(TEXT_SIZE, ALL_TEXT_SIZES)
+CALL(BACKGROUND_COLOR, ALL_COLORS)
+CALL(COLOR, ALL_COLORS)
+CALL(BORDER, ALL_COLORS)
 CALL(SIZE, SS)
-CALL(PADDING, SS)
-CALL(DIR_PADDING, SS)
-CALL(ABS_PADDING, SS)
-CALL(CENTER_ABS_V, SS)
-CALL(HORIZONTAL, SS)
-CALL(VERTICAL, SS)
-CALL(MARGIN, SS)
-CALL(FLEX_VERTICAL, SS)
-CALL(ROUND_T, TS)
-CALL(ROUND_EDGE, SS)
-ROUND_PADDING( , l)
-ROUND_PADDING( s, l)
-ROUND_PADDING( s, )
-ROUND_PADDING( xs, s)
-ROUND_PADDING( s, xl)
+CALL(SIZE, ALL_SIZES)
+CALL(PADDING, ALL_SIZES)
+CALL(AXIS_horizontal, ALL_SIZES)
+CALL(AXIS_vertical, ALL_SIZES)
+AXIS_0
+FULL_SIZE
+/* CALL(FLEX_VERTICAL, SS) */
+CALL(ROUND_T, ALL_TEXT_SIZES)
+CALL(ROUND_EDGE, ALL_SIZES)
+ROUND_PADDING( 4, 14)
+ROUND_PADDING( 8, 17)
+ROUND_PADDING( 8, 20)
+ROUND_PADDING( 8, 26)
 
+.dn { display: none; }
 .cf { background: #3c403c; }
 .cb { color: #c1c3da; }
 body {
@@ -44,6 +47,8 @@ input:focus {
         border: solid thin #9589c5;
         outline: #9589c5;
 }
+.abs { position: absolute; }
+.rel { position: relative; }
 a { color: #c1c3da; }
 style { display: none !important; }
 .oav { overflow: auto; }
@@ -59,8 +64,8 @@ pre { font-family: monospace; }
 .wn { white-space: nowrap; }
 button, .btn {
 	font-size: inherit;
-	padding: var(--S);
-	background-color: var(--C0);
+	padding: VAL(SIZE, );
+	background-color: VAL(COLOR, 0);
 	color: var(--C15);
 	border: none;
 	//border: solid thin black;
@@ -103,3 +108,9 @@ pre {
 .l { right: var(--S); }
 .cp { cursor: pointer; }
 .ttc { text-transform: capitalize; }
+
+input.c0 { border: solid thin VAL(COLOR, 0); color: CF; }
+input.c0:focus {
+        border: solid thin CM;
+        outline: CM;
+}
diff --git a/js/nfiles.js b/js/nfiles.js
index c4ea74d..82e1dab 100644
--- a/js/nfiles.js
+++ b/js/nfiles.js
@@ -26,12 +26,12 @@ function nfiles(nfiles_name, nfiles_el, submit_el, submit_label, file_name, add_
 	nfiles_el.removeChild(textarea);
 
 	let nfiles_cont = document.createElement('div');
-	nfiles_cont.classList.add('fw', 'f', '_s', 'vs', 'fic');
+	nfiles_cont.classList.add('fw', 'f', 'h8', 'v8', 'fic');
 	nfiles_el.appendChild(nfiles_cont);
 
 	let upload_image = document.createElement('button');
 	upload_image.innerText = '📁';
-	upload_image.classList.add('btn', 'round', 'ps', 'tsxl');
+	upload_image.classList.add('btn', 'round', 'p8', 'tsxl');
 	upload_image.type = "button";
 	nfiles_el.appendChild(upload_image);
 
@@ -53,7 +53,7 @@ function nfiles(nfiles_name, nfiles_el, submit_el, submit_label, file_name, add_
 
 	function nfiles_insert(url) {
 		let image = document.createElement('div');
-		image.classList.add('tss', 'pxs', 'c0', 'rxs', '_s', 'f', 'fic');
+		image.classList.add('tss', 'p4', 'c0', 'rxs', 'h8', 'f', 'fic');
 
 		let image_link = document.createElement('a');
 		const bname = basename(url);
@@ -64,7 +64,7 @@ function nfiles(nfiles_name, nfiles_el, submit_el, submit_label, file_name, add_
 		nfiles_map[url] = true;
 
 		let btn = document.createElement('button');
-		btn.classList.add('btn', 'round', 'pxs', 'tss', 'c15', 'cf0');
+		btn.classList.add('btn', 'round', 'p4', 'tss', 'c15', 'cf0');
 		btn.innerText = '×';
 		btn.type = 'button';
 		btn.onclick = function (ev) {
diff --git a/lib/common.sh b/lib/common.sh
index 2f0541c..b21332a 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -265,7 +265,7 @@ DF_USER=$REMOTE_USER
 SCRIPT="`basename $SCRIPT_NAME | cut -f1 -d'.'`"
 
 fw() {
-	csurround div "class=\"_$1 v$1 f fw fcc fic\""
+	csurround div "class=\"h$1 v$1 f fw fcc fic\""
 }
 
 invalid_id() {
diff --git a/lib/sem.sh b/lib/sem.sh
index 3c4b591..d45201d 100644
--- a/lib/sem.sh
+++ b/lib/sem.sh
@@ -20,7 +20,6 @@ menu(document.getElementById("sem_menu_cont"));
 
 access() {
 	$SEM -p < $SEM_FILE
-	echo S Gerson
 }
 
 export JS="`js`"
@@ -87,7 +86,7 @@ SemMenu() {
 <label id="sem_menu_cont" class="$RB rel c15 cf0 menu">
 	+
 	<input type="checkbox" />
-	<div class="abs vn f ah ak p c0 ts btn ttc">
+	<div class="abs v0 f ah ak p c0 ts btn ttc">
 		$options
 	</div>
 </label>
diff --git a/lib/very-common.sh b/lib/very-common.sh
index ac2ce9a..94dcc7a 100644
--- a/lib/very-common.sh
+++ b/lib/very-common.sh
@@ -38,6 +38,9 @@ Head() {
 		<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
 		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
 		<link rel="stylesheet" href="/vim.css" />
+		<script>
+`cat $ROOT/js/common.js`
+		</script>
 		<title>$_TITLE</title>
 	</head>
 !
@@ -80,15 +83,15 @@ _() {
 	[[ -z "$value" ]] && echo $@ || echo $value
 }
 
-export RB="btn round ps tsxl"
-export RBS="btn round ps ts"
-export RBXS="btn round pxs tss"
+export RB="btn round p8 ts64"
+export RBS="btn round p8 ts"
+export RBXS="btn round p4 tss"
 export SRB="btn round ps tsl"
 
 Menu() {
 	if [[ ! -z "$REMOTE_USER" ]]; then
 		USER_NAME="<span class=\"ts\">$REMOTE_USER</span>"
-		USER_ICON="<a class=\"tsxl f _ fic btn ps\" href=\"/e/user\"><span>🔑 </span><span> $USER_NAME</span></a>"
+		USER_ICON="<a class=\"tsxl f h fic btn p8\" href=\"/e/user\"><span>🔑 </span><span> $USER_NAME</span></a>"
 	else
 		USER_ICON="<a class=\"$RB\" href=\"/e/login\">🔑 </a>"
 	fi
diff --git a/locale/site-pt_PT.txt b/locale/site-pt_PT.txt
index bd6e9f7..b80563a 100644
--- a/locale/site-pt_PT.txt
+++ b/locale/site-pt_PT.txt
@@ -121,3 +121,5 @@ End of billing period|Fim do período de facturação
 Type|Tipo
 Entity|Entidade
 Reference|Referência
+Source Code|Código Fonte
+Commands|Comandos
diff --git a/templates/cart-edit.html b/templates/cart-edit.html
index dd33da0..668722b 100644
--- a/templates/cart-edit.html
+++ b/templates/cart-edit.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</header>
diff --git a/templates/cart.html b/templates/cart.html
index 125ba3e..853ffd3 100644
--- a/templates/cart.html
+++ b/templates/cart.html
@@ -2,7 +2,7 @@
 pre { display: inline-block; }
 </style>
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
diff --git a/templates/class-add.html b/templates/class-add.html
index ddcf57b..c9cb098 100644
--- a/templates/class-add.html
+++ b/templates/class-add.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/class-grading.html b/templates/class-grading.html
index a457652..532b7d9 100644
--- a/templates/class-grading.html
+++ b/templates/class-grading.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/class-teacher-associate.html b/templates/class-teacher-associate.html
index b688321..a959220 100644
--- a/templates/class-teacher-associate.html
+++ b/templates/class-teacher-associate.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/class.html b/templates/class.html
index 420c09c..d9d08cc 100644
--- a/templates/class.html
+++ b/templates/class.html
@@ -1,12 +1,12 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</header>
 
 	<h1 class="tac">$class_id - $class_title</h1>
 
-	<div class="_">
+	<div class="h">
 		<div>
 			$_SEMESTER $class_semester
 		</div>
diff --git a/templates/classes.html b/templates/classes.html
index 1303c03..e898ffd 100644
--- a/templates/classes.html
+++ b/templates/classes.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<div class="_ f fic">
+	<div class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/commands.html b/templates/commands.html
index 8c5e2d6..0a4ced1 100644
--- a/templates/commands.html
+++ b/templates/commands.html
@@ -1,7 +1,12 @@
 <body class="f fic tac v tsxl">
+	<form action="/e/whisper" method="POST">
+		<input name="whisper" class="c0"></input>
+	</form>
 	$MENU
 	<h2>$_TITLE</h2>
 	<a class="btn" href="/e/diff">diff</a>
 	<a class="btn" href="/e/neverdark-diff">$_NEVERDARK diff</a>
+	<a class="btn" href="/e/df">df</a>
+	<a class="btn" href="/e/quota">quota</a>
 </body>
 
diff --git a/templates/course-add.html b/templates/course-add.html
index 344108f..0980f2e 100644
--- a/templates/course-add.html
+++ b/templates/course-add.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/course-class-associate.html b/templates/course-class-associate.html
index 8c1ab46..3a9960c 100644
--- a/templates/course-class-associate.html
+++ b/templates/course-class-associate.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/course-teacher-associate.html b/templates/course-teacher-associate.html
index e13ff5f..e118f7e 100644
--- a/templates/course-teacher-associate.html
+++ b/templates/course-teacher-associate.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/course.html b/templates/course.html
index b078051..7c5b9a9 100644
--- a/templates/course.html
+++ b/templates/course.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</header>
diff --git a/templates/courses.html b/templates/courses.html
index 72ae85b..af34045 100644
--- a/templates/courses.html
+++ b/templates/courses.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<div class="_ f fic">
+	<div class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/index.html b/templates/index.html
index 429316b..0bd0634 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -6,7 +6,7 @@
 	<a class="btn" href="/e/schools">$_SCHOOLS</a>
 	<a class="btn" href="/e/shops">$_SHOPS</a>
 	<a class="btn" href="/e/sems">$_SEM</a>
-	<a class="btn" href="https://github.com/quirinpa/vim.css">vim.css</a>
+	<a class="btn" href="/e/cgit.cgi">$_SOURCE_CODE</a>
 	<a class="btn" href="/e/tty">$_TERMINAL</a>
 	<a class="btn" href="/e/commands">$_COMMANDS</a>
 </body>
diff --git a/templates/order.html b/templates/order.html
index aa6672a..f4a312d 100644
--- a/templates/order.html
+++ b/templates/order.html
@@ -2,7 +2,7 @@
 pre { display: inline-block; }
 </style>
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</header>
diff --git a/templates/orders.html b/templates/orders.html
index 43bea7a..fe2a0bf 100644
--- a/templates/orders.html
+++ b/templates/orders.html
@@ -2,7 +2,7 @@
 pre { display: inline-block; }
 </style>
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</header>
diff --git a/templates/poem.html b/templates/poem.html
index 0e6bdae..2aa9136 100644
--- a/templates/poem.html
+++ b/templates/poem.html
@@ -11,7 +11,7 @@ pre {
 </style>
 
 <body class="v">
-	<header class="_ f fw v fic fcc">
+	<header class="h f fw v fic fcc">
 		<a href="#comments" class="$RB">💬</a>
 		$MENU
 		<div class="cf15 tsxl">$COUNTER</div>
@@ -23,7 +23,7 @@ pre {
 $_POEM
 	</pre>
 
-	<form action="./poem#comments" method="post" class="_ f fic">
+	<form action="./poem#comments" method="post" class="h f fic">
 		<input type="hidden" name="poem_id" value="$poem_id"></input>
 		<input class="fg" name="comment"></input>
 	</form>
diff --git a/templates/product-add.html b/templates/product-add.html
index 16f0c02..c438c37 100644
--- a/templates/product-add.html
+++ b/templates/product-add.html
@@ -2,7 +2,7 @@
 pre { display: inline-block; }
 </style>
 <body class="f fic v">
-	<div class="f _">
+	<div class="f h">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</div>
@@ -21,7 +21,7 @@ pre { display: inline-block; }
 		</label>
 		<label>
 			$_IMAGES
-			<div id="images" class="_ f fic">
+			<div id="images" class="h f fic">
 				<textarea type="url" name="images"></textarea>
 				<a class="$RB" href="/e/images" target="_blank">🔍</a>
 			</div>
diff --git a/templates/product-edit.html b/templates/product-edit.html
index cd90763..58bdae8 100644
--- a/templates/product-edit.html
+++ b/templates/product-edit.html
@@ -2,7 +2,7 @@
 pre { display: inline-block; }
 </style>
 <body class="f fic v">
-	<div class="f _">
+	<div class="f h">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</div>
@@ -22,7 +22,7 @@ pre { display: inline-block; }
 		</label>
 		<label>
 			$_IMAGES
-			<div id="images" class="_ f fic">
+			<div id="images" class="h f fic">
 				<textarea type="url" name="images">$product_images</textarea>
 				<a class="$RB" href="/e/images" target="_blank">🔍</a>
 			</div>
diff --git a/templates/product.html b/templates/product.html
index 6e70375..5026aa4 100644
--- a/templates/product.html
+++ b/templates/product.html
@@ -1,11 +1,11 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</header>
 	<h1 class="tac">$_TITLE</h1>
-	<div class="f fw _s vs fic">$PRODUCT_IMAGES</div>
+	<div class="f fw h8 v8 fic">$PRODUCT_IMAGES</div>
 	<span class="tsxl">$product_title</span>
 	<div class="tsl">$product_price€</div>
 	<div>$_STOCK: $product_stock</div>
diff --git a/templates/school.html b/templates/school.html
index 9c9b35d..cad5adf 100644
--- a/templates/school.html
+++ b/templates/school.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SCHOOL_MENU
 		$MENU
 	</header>
diff --git a/templates/sem-buy.html b/templates/sem-buy.html
index 4bfc0fa..37ddd08 100644
--- a/templates/sem-buy.html
+++ b/templates/sem-buy.html
@@ -1,5 +1,5 @@
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem-pause.html b/templates/sem-pause.html
index 14ae57b..959ad0c 100644
--- a/templates/sem-pause.html
+++ b/templates/sem-pause.html
@@ -3,7 +3,7 @@ pre { display: inline-block; }
 </style>
 
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem-pay.html b/templates/sem-pay.html
index 8b1debe..d9175af 100644
--- a/templates/sem-pay.html
+++ b/templates/sem-pay.html
@@ -1,11 +1,14 @@
+<script src="/qr-scanner.umd.min.js"></script>
+<!-- <script src="https://unpkg.com/html5-qrcode" type="text/javascript"></script> -->
+
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
 	</header>
 	<h1 class="tac ttc">$_TITLE</h1>
-	<form action="/e/sem-pay" method="POST" class="v f">
+	<form action="/e/sem-pay" method="POST" class="v f fic">
 		<label>
 			$_DATE_TIME
 			<input required name="ts" type="datetime-local" value="$NOW" step="1"></input>
@@ -57,9 +60,32 @@
 		<input type="hidden" name="sem_id" value="$sem_id"></input>
 
 		<button>$_SUBMIT</button>
+
+		<!-- <div id="reader" class="s_f"></div> -->
+		<video class="s_f"></video>
 	</form>
 </body>
 
 <script>
 $JS
+
+const video = document.querySelector("video");
+const entity = document.querySelector("input[name=entity]");
+
+function fill(data) {
+	alert(data.split("*").join("\n"));
+}
+
+const qrScanner = new QrScanner(
+	video,
+	result => fill(
+		result.data,
+	),
+	{
+		highlightScanRegion: true,
+		returnDetailedScanResult: true,
+	}
+);
+qrScanner.start();
+console.log(entity);
 </script>
diff --git a/templates/sem-resume.html b/templates/sem-resume.html
index 9a48986..0a6d46a 100644
--- a/templates/sem-resume.html
+++ b/templates/sem-resume.html
@@ -1,5 +1,5 @@
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem-start.html b/templates/sem-start.html
index 6470866..f120261 100644
--- a/templates/sem-start.html
+++ b/templates/sem-start.html
@@ -1,5 +1,5 @@
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem-stop.html b/templates/sem-stop.html
index 222a544..50c013b 100644
--- a/templates/sem-stop.html
+++ b/templates/sem-stop.html
@@ -1,5 +1,5 @@
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem-transfer.html b/templates/sem-transfer.html
index 546de81..742d719 100644
--- a/templates/sem-transfer.html
+++ b/templates/sem-transfer.html
@@ -1,5 +1,5 @@
 <body class="v f fic rel">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		<a class="$RB" href="/e/sem?sem_id=$sem_id">👁</a>
 		$MENU
diff --git a/templates/sem.html b/templates/sem.html
index 0a09cc3..fa4e461 100644
--- a/templates/sem.html
+++ b/templates/sem.html
@@ -3,7 +3,7 @@ pre { display: inline-block; }
 </style>
 
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SEM_MENU
 		$MENU
 	</header>
@@ -13,36 +13,37 @@ pre { display: inline-block; }
 	<pre>$SEM</pre>
 
 	<form action="/e/sem" method="GET" class="v tac">
-		<div class="fw f _">
-			<label class="_">
+		<div class="fw f h">
+			<label class="h">
 				<input type="checkbox" name="graph" $graph_checked></input>
 				$_GRAPH
 			</label>
 
-			<label class="_">
+			<label class="h">
 				<input type="checkbox" name="debug" $debug_checked></input>
 				$_DEBUG
 			</label>
 
-			<label class="_">
+			<label class="h">
 				<input type="checkbox" name="human" $human_checked></input>
 				$_HUMAN
 			</label>
 
-			<label class="_">
+			<label class="h">
 				<input type="checkbox" name="machine" $machine_checked></input>
 				$_MACHINE
 			</label>
 
-			<label class="_">
+			<label class="h">
 				<input type="checkbox" name="present" $present_checked></input>
 				$_PRESENT
 			</label>
 		</div>
-
 		<input type="hidden" name="sem_id" value="$sem_id"></input>
-
-		<button>$_SUBMIT</button>
+		<span class="h f fcc">
+			<button>$_SUBMIT</button>
+			<a class="btn" href="/e/sem-download?sem_id=$sem_id">$_DOWNLOAD</a>
+		</span>
 	</form>
 </body>
 
diff --git a/templates/shop-edit.html b/templates/shop-edit.html
index 702cc01..2625ef3 100644
--- a/templates/shop-edit.html
+++ b/templates/shop-edit.html
@@ -7,7 +7,7 @@ pre { display: inline-block; }
 </style>
 
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		<a class="$RB" href="/e/shop?shop_id=$shop_id">💰</a>
 		$MENU
 	</header>
diff --git a/templates/shop.html b/templates/shop.html
index ba5f95c..7a4c4e1 100644
--- a/templates/shop.html
+++ b/templates/shop.html
@@ -3,7 +3,7 @@ pre { display: inline-block; }
 </style>
 
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		$SHOP_BUTTONS
 		$MENU
diff --git a/templates/student-add.html b/templates/student-add.html
index e2bb6b8..126e590 100644
--- a/templates/student-add.html
+++ b/templates/student-add.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/student-course-associate.html b/templates/student-course-associate.html
index 8652790..28eae8c 100644
--- a/templates/student-course-associate.html
+++ b/templates/student-course-associate.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/student-edit.html b/templates/student-edit.html
index 116ae01..75d30ed 100644
--- a/templates/student-edit.html
+++ b/templates/student-edit.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</header>
diff --git a/templates/student.html b/templates/student.html
index f260654..660ca6a 100644
--- a/templates/student.html
+++ b/templates/student.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		$SCHOOL_BTN
 		$MENU
diff --git a/templates/students.html b/templates/students.html
index 0749674..06db46c 100644
--- a/templates/students.html
+++ b/templates/students.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<div class="_ f fic">
+	<div class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/teacher-add.html b/templates/teacher-add.html
index d41b3d8..bd57b3b 100644
--- a/templates/teacher-add.html
+++ b/templates/teacher-add.html
@@ -1,5 +1,5 @@
 <body class="f fic v">
-	<div class="f fic _">
+	<div class="f fic h">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/teacher-edit.html b/templates/teacher-edit.html
index 556ca34..5cceebb 100644
--- a/templates/teacher-edit.html
+++ b/templates/teacher-edit.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</header>
diff --git a/templates/teacher.html b/templates/teacher.html
index 47367dd..f5e1f78 100644
--- a/templates/teacher.html
+++ b/templates/teacher.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		$SCHOOL_BTN
 		$MENU
diff --git a/templates/teachers.html b/templates/teachers.html
index 036cc9e..24beb00 100644
--- a/templates/teachers.html
+++ b/templates/teachers.html
@@ -1,5 +1,5 @@
 <body class="v f fic">
-	<div class="_ f fic">
+	<div class="h f fic">
 		$SCHOOL_BTN
 		$MENU
 	</div>
diff --git a/templates/tty.html b/templates/tty.html
index 9ec0e64..2c3748c 100644
--- a/templates/tty.html
+++ b/templates/tty.html
@@ -3,7 +3,7 @@ pre,form { margin: 0 }
 pre { display: inline-block; }
 </style>
 <body class="v f fic">
-	<header class="_ f fw v fic fcc">
+	<header class="h f fw v fic fcc">
 		$MENU
 	</header>
 	<h1 class="tac">$_TITLE</h1>
diff --git a/templates/user-edit.html b/templates/user-edit.html
index 19caa80..c1aac5e 100644
--- a/templates/user-edit.html
+++ b/templates/user-edit.html
@@ -4,7 +4,7 @@
 	<h1 class="tac">$_TITLE</h1>
 
 	<form action="/e/user-edit" method="POST" class="f v fic">
-		<div class="_ f fw v fic fcc">
+		<div class="h f fw v fic fcc">
 			<div class="f v fic">
 				<label>
 					$_NAME
diff --git a/templates/user.html b/templates/user.html
index 27c2584..cf73889 100644
--- a/templates/user.html
+++ b/templates/user.html
@@ -1,12 +1,12 @@
 <body class="f fic v">
-	<header class="_ f fic">
+	<header class="h f fic">
 		$EDIT_BTN
 		$MENU
 	</header>
 
 	<h1 class="tac">$_TITLE</h1>
 
-	<div class="_ f fw v">
+	<div class="h f fw v">
 		<div class="f v">
 			$NAME