diff --git a/contracts/forms.py b/contracts/forms.py
index 4fc99582a554c80be4f06ed179e3f78821b808f3..5ed21fbfcbc1b79ba3219b33d10cf23f9fc21085 100644
--- a/contracts/forms.py
+++ b/contracts/forms.py
@@ -15,6 +15,13 @@ class ContractAdminForm(forms.ModelForm):
             "shared/admin_contract_form.js",
         )
 
+    class Meta:
+        widgets = {
+            "summary": forms.Textarea(attrs={
+                "rows": 2
+            }),
+        }
+
 
 class SigneeAdminForm(forms.ModelForm):
     class Media:
@@ -46,7 +53,7 @@ for many_to_many_field in (
 ):
     djhacker.formfield(
         many_to_many_field,
-        forms.ModelChoiceField,
+        forms.ModelMultipleChoiceField,
         widget=dal.autocomplete.ModelSelect2Multiple(
             url="contracts:select2_djhacker_contract_autocomplete"
         )
diff --git a/contracts/migrations/0005_alter_contract_summary.py b/contracts/migrations/0005_alter_contract_summary.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9561a4d82cec0241d37a85e5ad7abf4d05ce07a
--- /dev/null
+++ b/contracts/migrations/0005_alter_contract_summary.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.1.4 on 2023-02-24 07:34
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0004_alter_contract_approval_state'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='contract',
+            name='summary',
+            field=models.TextField(blank=True, max_length=256, null=True, verbose_name='Sumarizace obsahu smlouvy'),
+        ),
+    ]
diff --git a/contracts/migrations/0006_alter_contract_approval_state_and_more.py b/contracts/migrations/0006_alter_contract_approval_state_and_more.py
new file mode 100644
index 0000000000000000000000000000000000000000..161e5dc30390b4e3627773dbc529acc389e1df84
--- /dev/null
+++ b/contracts/migrations/0006_alter_contract_approval_state_and_more.py
@@ -0,0 +1,28 @@
+# Generated by Django 4.1.4 on 2023-02-24 08:13
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0005_alter_contract_summary'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='contract',
+            name='approval_state',
+            field=models.CharField(blank=True, choices=[('no', 'Neschválená'), ('yes', 'Schválená')], help_text='Může měnit jen schvalovatel. Pokud je smlouva veřejná, se stavem "Přijatá" se vypustí ven.', max_length=7, null=True, verbose_name='Stav schválení'),
+        ),
+        migrations.AlterField(
+            model_name='contract',
+            name='cost_amount',
+            field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Náklady (Kč)'),
+        ),
+        migrations.AlterField(
+            model_name='contract',
+            name='paper_form_state',
+            field=models.CharField(choices=[('sent', 'Odeslaný'), ('stored', 'Uložený'), ('to_shred', 'Ke skartaci'), ('shredded', 'Skartovaný'), ('lost', 'Ztracený')], max_length=8, verbose_name='Stav fyzického dokumentu'),
+        ),
+    ]
diff --git a/contracts/models.py b/contracts/models.py
index b7f81793771176edf663e59289fa5e0d430bc759..08970ef9165bd96cb811d63b4460ac9d60107239 100644
--- a/contracts/models.py
+++ b/contracts/models.py
@@ -317,8 +317,8 @@ class Contract(models.Model):
     # BEGIN Approval fields
 
     class ApprovalStates(models.TextChoices):
-        NO = "no", "Odmítnutá"
-        YES = "yes", "Přijatá"
+        NO = "no", "Neschválená"
+        YES = "yes", "Schválená"
 
     approval_state = models.CharField(
         max_length=7,
@@ -351,7 +351,7 @@ class Contract(models.Model):
         verbose_name="Typ",
     )
 
-    summary = models.CharField(
+    summary = models.TextField(
         max_length=256,
         blank=True,
         null=True,
@@ -378,11 +378,11 @@ class Contract(models.Model):
         NO = "no", "Neveřejná"
 
     class PaperFormStates(models.TextChoices):
-        SENT = "sent", "Odeslaná"
-        STORED = "stored", "Uložená"
+        SENT = "sent", "Odeslaný"
+        STORED = "stored", "Uložený"
         TO_SHRED = "to_shred", "Ke skartaci"
-        SHREDDED = "shredded", "Skartovaná"
-        LOST = "lost", "Ztracená"
+        SHREDDED = "shredded", "Skartovaný"
+        LOST = "lost", "Ztracený"
 
     legal_state = models.CharField(
         max_length=13,
@@ -437,7 +437,7 @@ class Contract(models.Model):
         YEAR = "year", "Rok"
         TOTAL = "total", "Celkem"
 
-    cost_amount = models.IntegerField(
+    cost_amount = models.PositiveIntegerField(
         blank=True,
         null=True,
         verbose_name="Náklady (Kč)"
diff --git a/contracts/templates/contracts/index.html b/contracts/templates/contracts/index.html
index de9066177bdaf9cfb2258588607d0f5c526c8ea5..a9a20c147e20bf7df51bcbf60c274aac1d74fa4e 100644
--- a/contracts/templates/contracts/index.html
+++ b/contracts/templates/contracts/index.html
@@ -2,7 +2,12 @@
 {% load subtract %}
 
 {% block content %}
-    <h1 class="head-alt-lg mb-10">{{ title }}</h1>
+    <div class="prose max-w-none mb-10">
+        <p>
+            <strong>Magni cumque debitis illo molestiae vitae.</strong> Laudantium et nihil magni rem. Aliquid aperiam minima aspernatur repudiandae quidem. Voluptatem consequatur voluptas aperiam consequatur. Et et dolor libero ut in est voluptate. Libero <a href="#">beatae temporibus itaque</a> est.
+            Temporibus <i>voluptatum commodi delectus est</i>. Commodi et voluptatem dolor odit occaecati dolore aut. Qui dolor nihil excepturi id. Qui deleniti <i>cupiditate voluptatem aut</i> est dolores eum aliquid. Molestiae blanditiis reiciendis odio provident ipsam voluptas enim suscipit.
+        </p>
+    </div>
     <table class="table table-auto w-full table--striped table--bordered">
         <thead>
             <tr>
@@ -31,7 +36,7 @@
                         </ul>
                     </td>
                     <td>
-                        <i class="{% if contract.legal_state == contract.PublicStates.YES.0 %}ico--checkmark{% else %}ico--cross{% endif %}"></i>
+                        <i class="{% if contract.legal_state == contract.LegalStates.VALID %}ico--checkmark{% else %}ico--cross{% endif %}"></i>
                     </td>
                     <td class="whitespace-nowrap">{{ contract.valid_start_date }}</td>
                     <td class="whitespace-nowrap">{{ contract.valid_end_date }}</td>
diff --git a/contracts/templates/contracts/view_contract.html b/contracts/templates/contracts/view_contract.html
index 94a06cef7452bff37e1218497e32cd45b33fa1d9..a0981050b8ea8674a09cd0e54723dd8f05fe3704 100644
--- a/contracts/templates/contracts/view_contract.html
+++ b/contracts/templates/contracts/view_contract.html
@@ -4,10 +4,13 @@
 {% block content %}
     <h1 class="head-alt-lg mb-10">{{ contract.name }}</h1>
 
-    <h2 class="text-xl font-bold mb-5"><i class="ico--info mr-3"></i>Základní informace</h2>
-
     <table class="table table-auto w-full table--striped table--bordered mb-10">
         <tbody>
+            <tr>
+                <td colspan="2" class="text-lg font-bold">
+                    <i class="ico--info mr-3"></i>Základní informace
+                </td>
+            </tr>
             {% if contract.id_number %}
                 <tr>
                     <td class="w-1/5 !p-2.5">Identifikační číslo</td>
@@ -40,7 +43,7 @@
                 </tr>
             {% endif %}
             <tr>
-                <td class="w-1/5 !p-2.5">Souhrn obsahu</td>
+                <td class="w-1/5 !p-2.5">Souhrn</td>
                 <td class="w-4/5 !p-2.5">{{ contract.summary }}</td>
             </tr>
             <tr>
@@ -127,7 +130,7 @@
                     <td class="w-1/5 !p-2.5">Náklady</td>
                     <td class="w-4/5 !p-2.5">
                         {{ contract.cost_amount }} Kč
-                        {% if contract.cost_unit != contract.CostUnits.TOTAL.0 %}
+                        {% if contract.cost_unit != contract.CostUnits.TOTAL %}
                             / {{ contract.get_cost_unit_display }}
                         {% else %}
                             celkem
@@ -238,12 +241,12 @@
                             <div class="mb-1">
                                 {{ signature.signee.get_entity_type_display }}
 
-                                {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON.0 %}
+                                {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON %}
                                     <span class="text-gray-300">(zobrazujeme pouze obec)</span>
-                                {% elif %}
+                                {% endif %}
                             </div>
 
-                            {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON.0 %}
+                            {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON %}
                                 {{ signature.signee.address_street_with_number }}<br>
                                 {{ signature.signee.address_zip }} {{ signature.signee.address_district }}<br>
                                 {{ signature.signee.get_address_country_display }}<br>
diff --git a/contracts/views.py b/contracts/views.py
index ecaf2da839be02244147a164a8b48b949b8e540a..8aa3d57b08364fe3aef4198c1faed7bcbee0724e 100644
--- a/contracts/views.py
+++ b/contracts/views.py
@@ -10,7 +10,7 @@ from .models import Contract
 def index(request):
     contracts = (
         Contract.objects.filter(
-            is_approved=True,
+            approval_state=Contract.ApprovalStates.YES,
             public_state=Contract.PublicStates.YES,
         )
         .order_by("valid_start_date")
@@ -20,8 +20,6 @@ def index(request):
 
     page = paginator.get_page(request.GET.get("page"))
 
-    print(request.user)
-
     return render(
         request,
         "contracts/index.html",
@@ -38,7 +36,7 @@ def index(request):
 
 def view_contract(request, id: int):
     contract = Contract.objects.filter(
-        is_approved=True,
+        approval_state=Contract.ApprovalStates.YES,
         public_state=Contract.PublicStates.YES,
     ).get(id=id)
 
diff --git a/package.json b/package.json
index 83f28d5ed7692d0af105d9166eee58971f6ced86..eea8208a7abe38ab41eff68b4dbb5ca153339449 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
   "author": "Tomáš Valenta",
   "license": "AGPL-3.0-or-later",
   "dependencies": {
+    "@tailwindcss/typography": "^0.5.9",
     "css-loader": "^6.7.3",
     "jquery": "^3.6.3",
     "style-loader": "^3.3.1",
diff --git a/tailwind.config.js b/tailwind.config.js
index 882ff8fc6f21218aac61604077d8e0cdd47ff91e..ca793d21b64250b76e1a1a07d6b8e09a4023acbd 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -14,5 +14,7 @@ module.exports = {
       },
     },
   },
-  plugins: [],
+  plugins: [
+    require('@tailwindcss/typography'),
+  ],
 }