diff --git a/app.js b/app.js
index 6721b3d..3199429 100644
--- a/app.js
+++ b/app.js
@@ -11,7 +11,6 @@ let selectedValue = ""
 let history = []
 let accessKeyModifiers = "AccessKey+"
 let penStyle = "ink-pen"
-let highlighting = false
 
 window.onload = function() {
     let rowId = 0
@@ -189,38 +188,36 @@ function onblur() {
 }
 
 function enableButtons() {
-    for (button of buttons.getElementsByTagName("button")) {
-        if (boxes.filter(box => box.value == "").some(box => box.candidates.has(button.textContent))) {
-            button.disabled = false
-            if (button.previousTitle) {
-                button.title = button.previousTitle
-                button.previousTitle = null
+    for (radio of radioValues.getElementsByTagName("input")) {
+        if (boxes.filter(box => box.value == "").some(box => box.candidates.has(radio.value))) {
+            radio.disabled = false
+            if (radio.previousTitle) {
+                radio.title = radio.previousTitle
+                radio.previousTitle = null
             }
         } else {
-            button.disabled = true
-            button.previousTitle = button.title
-            button.title = "Tous les " + button.textContent + " sont posés"
-            if (selectedValue == button.textContent) selectedValue = ""
+            radio.disabled = true
+            console.log(radio.disabled)
+            radio.previousTitle = radio.title
+            radio.title = "Tous les " + radio.value + " sont posés"
+            if (selectedValue == radio.value) selectedValue = ""
         }
     }
 }
 
-function highlight(value) {
-    if (value == selectedValue) {
+function highlight(radio) {
+    if (radio.value == selectedValue) {
         selectedValue = ""
+        radio.checked = false
     } else {
-        selectedValue = value
-    }
-    for (button of buttons.getElementsByTagName("button")) {
-        if (button.textContent == selectedValue) button.classList.add("pressed")
-        else button.classList.remove("pressed")
+        selectedValue = radio.value
     }
     highlightAndTab()
     boxes.filter(box => box.value == "" && box.tabIndex == 0)[0].focus()
 }
 
 function highlightAndTab() {
-    if (highlighting && selectedValue) {
+    if (highlighterCheckbox.checked && selectedValue) {
         boxes.forEach(box => {
             if (box.value == selectedValue) {
                 box.classList.add("same-value")
@@ -300,18 +297,6 @@ function oncontextmenu(event) {
     return false
 }
 
-function useInkPen() {
-    inkPenButton.classList.add("pressed")
-    pencilButton.classList.remove("pressed")
-    penStyle = "ink-pen"
-}
-
-function usePencil() {
-    pencilButton.classList.add("pressed")
-    inkPenButton.classList.remove("pressed")
-    penStyle = "pencil"
-}
-
 function erase(someBoxes) {
     for (box of someBoxes) {
         box.value = ""
@@ -343,14 +328,4 @@ function eraseAll() {
         enableButtons()
         highlightAndTab()
     }
-}
-
-function toggleHighlighting() {
-    highlighting = !highlighting
-    if (highlighting) {
-        highlighterButton.classList.add("pressed")
-    } else {
-        highlighterButton.classList.remove("pressed")
-    }
-    highlightAndTab()
-}
+}
\ No newline at end of file
diff --git a/style.css b/style.css
index d31fb66..0fddd66 100644
--- a/style.css
+++ b/style.css
@@ -14,10 +14,17 @@ section, div, footer {
     flex-wrap: wrap;
     align-items: center;
     row-gap: 0.5rem;
-    column-gap: 0.5rem;
-    margin: 0.8rem auto;
     justify-content: center;
     text-align: center;
+    column-gap: 0.3rem;
+}
+
+section, footer {
+    margin: 0.8rem auto;
+}
+
+div {
+    margin: 0 auto;
 }
 
 .grid {
@@ -97,7 +104,9 @@ input::-webkit-calendar-picker-indicator {
     background: white;
     color: darkblue;
 }
-.grid input:disabled, button:enabled {
+.grid input:disabled,
+button:enabled,
+.tools input+label {
     color: white;
     background: #6666ff;
 }
@@ -111,7 +120,9 @@ input::-webkit-calendar-picker-indicator {
     color: #ffffaa;
     background: #6666ff;
 }
-.grid input.same-value:disabled, button.same-value:enabled {
+.grid input.same-value:disabled,
+button.same-value:enabled,
+.tools input:checked+label {
     color: #ffffaa !important;
     background: #00b359 !important;
 }
@@ -122,45 +133,51 @@ input::-webkit-calendar-picker-indicator {
     height: 2.5rem !important;
 }
 
-.select-buttons {
-    column-gap: 2px;
+.tools input {
+    display:none;
 }
-button, input[type="color"] {
+button,
+.tools input+label {
     border: 2px outset #6666ff;
     border-radius: 4px;
     font-size: 1.3rem;
     padding: 4px 9px 5px 9px;
     margin:  0px 1px 1px 1px;
 }
-button img {
+img {
     width: 16px;
     height: 16px;
 }
-button:enabled:hover {
+button:enabled:hover,
+.tools input:enabled:hover+label {
     border-width: 1px;
     border-style: outset;
     padding: 5px 9px 5px 10px;
     margin:  1px 1px 1px 2px;
 }
-button.pressed:enabled:hover {
+button.pressed:enabled:hover,
+.tools input:enabled:checked:hover+label {
     border-width: 3px;
     border-style: inset;
     padding: 4px 6px 2px 9px;
     margin:  1px 1px 1px 2px;
 }
-button.pressed {
+button.pressed,
+.tools input:checked+label {
     border: 2px inset #00b359;
     background: #00b359;
     padding: 4px 8px 4px 9px;
     margin:  1px 1px 0px 2px;
 }
-button:enabled:active {
+button:enabled:active,
+.tools input:enabled:active+label {
     border-width: 4px !important;
     border-style: inset !important;
     padding: 4px 4px 0px 9px !important;
     margin:  0px 1px 0px 2px !important;
 }
-button:disabled {
+button:disabled,
+.tools input:disabled+label {
     color: #666;
     background: darkgrey;
     border: 1px outset darkgrey;
@@ -171,9 +188,6 @@ button.warning {
     background: #ff5050;
     border-color: #ff5050;
 }
-input[type="color"] {
-    padding: 0;
-}
 
 a {
     text-decoration: none;
diff --git a/sudoku.php b/sudoku.php
index ee25abd..a158511 100644
--- a/sudoku.php
+++ b/sudoku.php
@@ -29,9 +29,8 @@
         <link rel="manifest" href="manifest.json.php?grid=<?=$gridStr?>">
         <meta property="og:title" content="Sudoku"/>
         <meta property="og:type" content="website"/>
-        <meta property="og:url" content="<?=$_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["HTTP_HOST"] . $_SERVER["DOCUMENT_URI"];
-?>"/>
-        <meta property="og:image" content="<?=$_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["DOCUMENT_URI"])?>/thumbnail.png.php?grid=<?=$gridStr?>&size=200"/>
+        <meta property="og:url" content="<?=$_SERVER["REQUEST_SCHEME"]."://" . $_SERVER["HTTP_HOST"].$_SERVER["DOCUMENT_URI"]?>"/>
+        <meta property="og:image" content="<?=$_SERVER["REQUEST_SCHEME"]."://" . $_SERVER["HTTP_HOST"].dirname($_SERVER["DOCUMENT_URI"])?>/thumbnail.png.php?grid=<?=$gridStr?>&size=200"/>
         <meta property="og:image:width" content="200"/>
         <meta property="og:image:height" content="200"/>
         <meta property="og:description" content="Remplissez la grille de sorte que chaque ligne, colonne et région (carré de 3×3 cases) contienne tous les chiffres de 1 à 9."/>
@@ -46,58 +45,60 @@
             Remplissez la grille de sorte que chaque ligne, colonne et région (carré de 3×3 cases) contienne tous les chiffres de 1 à 9.
         </section>
         <form id='sudokuForm'>
-            <div>
-                <table id='grid' class='grid'>
-                    <tbody>
-<?php   for ($row = 0; $row < 9; $row++) {                                   ?>
-                        <tr>
+            <table id='grid' class='grid'>
+                <tbody>
 <?php
-            for ($column = 0; $column < 9; $column++) {
-                $value = $gridStr[9*$row+$column];
-                if ($value == UNKNOWN) {
+        for ($row = 0; $row < 9; $row++) {
 ?>
-                            <td><input type='number' min='1' max='9' step='1' value='' title='Valeurs possibles [Clic-droit]'/></td>
-<?php           } else {                                                     ?>
-                            <td><input type='number' min='1' max='9' step='1' value='<?=$value?>' disabled/></td>
+                    <tr>
 <?php
-                }                                                            
-            }
+        for ($column = 0; $column < 9; $column++) {
+            $value = $gridStr[9*$row+$column];
+            if ($value == UNKNOWN) {
 ?>
-                        </tr>
-<?php   }                                                                    ?>
-                    </tbody>
-                </table>
-            </div>
-            <div id='buttons' class='select-buttons'>
+                        <td><input type='number' min='1' max='9' step='1' value='' title='Valeurs possibles [Clic-droit]'/></td>
+<?php
+                } else {
+?>
+                        <td><input type='number' min='1' max='9' step='1' value='<?=$value?>' disabled/></td>
+<?php
+            }                                                            
+        }
+?>
+                    </tr>
+<?php
+   }
+?>
+                </tbody>
+            </table>
+        </form>
+        <section class='tools'>
+            <div id='radioValues' class='radioValues'>
 <?php
         for($value=1; $value<=9; $value++) {
-            echo "                <button type='button' onclick='highlight(\"$value\")' title='Écrire un $value' accesskey='$value'>$value</button>\n";
+            echo "                <input type='radio' id='radioValue$value' value='$value' name='radioValues' onclick='highlight(this)' accesskey='$value'/><label for='radioValue$value' title='Écrire un $value'>$value</label>\n";
         }
 ?>
             </div>
             <div>
-                <button id='highlighterButton' type='button' onclick='toggleHighlighting()' title='Surligner les chiffres sélectionnés'>
-                    <img src="img/highlighter.svg" alt='Surligneur'/>
+                <input id='highlighterCheckbox' type="checkbox" onclick='highlightAndTab()'/>
+                <label for='highlighterCheckbox' title='Surligner les chiffres sélectionnés'><img src='img/highlighter.svg' alt='Surligneur'></label>
+                <input type='radio' id='inkPenRadio' name='pen' onclick='penStyle = "ink-pen"' checked/>
+                <label for='inkPenRadio' title='Écrire au stylo indélébile'><img src='img/ink-pen.svg' alt='Stylo'/></label>
+                <input type='radio' id='pencilRadio' name='pen' onclick='penStyle = "pencil"'/>
+                <label for='pencilRadio' title='Écrire au crayon'><img src='img/pencil.svg' alt='Crayon'/></label>
+                <button type='button' onclick='erasePencil()' title='Gommer le crayon'>
+                    <img src='img/pencil-eraser.svg' alt='Gomme blanche'/>
                 </button>
-                <button id='inkPenButton' type='button' onclick='useInkPen()' title='Écrire au stylo' class='pressed'>
-                    <img src="img/ink-pen.svg" alt='Stylo'/>
-                </button>
-                <button id='pencilButton' type='button' onclick='usePencil()' title='Écrire au crayon'>
-                    <img src="img/pencil.svg" alt='Crayon'/>
-                </button>
-                <button type='button' onclick='erasePencil()' title='Effacer le crayon'>
-                    <img src="img/pencil-eraser.svg" alt="Gomme blanche"/>
-                </button>
-                <button class="warning" type='button' onclick='eraseAll()' title='Effacer tout'>
-                    <img src="img/ink-eraser.svg" alt="Gomme bleue"/>
+                <button class='warning' type='button' onclick='eraseAll()' title='Gommer tout'>
+                    <img src='img/ink-eraser.svg' alt='Gomme bleue'/>
                 </button>
                 <button id='undoButton' type='button' onclick='undo()' disabled title='Annuler' accesskey='z'>
-                    <img src="img/undo.svg" alt="Annuler"/>
+                    <img src='img/undo.svg' alt='Annuler'/>
                 </button>
             </div>
-        </form>
-        <ul id="contextMenu" class="context-menu">
-        </ul>
+        </section>
+        <ul id="contextMenu" class="context-menu"></ul>
         <footer>
             <a href=''>Lien vers cette grille</a><br/>
             <a href='.................................................................................'>Grille vierge</a><br/>