diff --git a/app/assets/stylesheets/admin/appstack/style.sass b/app/assets/stylesheets/admin/appstack/style.sass
index 02c1b4b897ccaa3736affad729c557adf75bc479..1dc6a960393144b77ff31327402e27e1b859989c 100644
--- a/app/assets/stylesheets/admin/appstack/style.sass
+++ b/app/assets/stylesheets/admin/appstack/style.sass
@@ -71,7 +71,8 @@ h1
     pointer-events: none
 .sidebar-link, a.sidebar-link
     color: rgba(255, 255, 255, 0.8)
-.sidebar-item.active .sidebar-link:hover, .sidebar-item.active > .sidebar-link
+.sidebar-item.active .sidebar-link:hover, 
+.sidebar-item.active > .sidebar-link
     color: white
 
 #topbar
@@ -109,4 +110,7 @@ h1
             margin-top: -5px
         &__title
             border-bottom: 1px solid rgba(0, 0, 0, 0.3)
-            padding-bottom: 6px
\ No newline at end of file
+            padding-bottom: 6px
+
+.pure__separation
+    display: none
\ No newline at end of file
diff --git a/app/assets/stylesheets/admin/pure/style.sass b/app/assets/stylesheets/admin/pure/style.sass
index d4b5b7dce4e28f75d63bb9246612734e18e2dab7..d2caf6a7e9f305a750c2379fbb7fb5e28655cf64 100644
--- a/app/assets/stylesheets/admin/pure/style.sass
+++ b/app/assets/stylesheets/admin/pure/style.sass
@@ -11,6 +11,9 @@
         > *
             padding-left: calc(.5 * #{$spacing1})
             padding-right: calc(.5 * #{$spacing1})
+    &__separation
+        border-width: 10px
+        margin-bottom: $spacing3
 
 .navbar
     position: absolute
@@ -112,7 +115,9 @@ a
     &.kind--selected
         background: $color-accent
         border-color: $color-accent
-        color: $color-background
+        &, p
+            color: $color-background
+        
 
 .list-group-item.active
     color: $color-accent
diff --git a/app/controllers/admin/research/journals_controller.rb b/app/controllers/admin/research/journals_controller.rb
index 1dd99dea3435a14964106026aff16fa4e0359f16..048aaaef7d1dee966ad1213e3f027704aea1738a 100644
--- a/app/controllers/admin/research/journals_controller.rb
+++ b/app/controllers/admin/research/journals_controller.rb
@@ -14,6 +14,7 @@ class Admin::Research::JournalsController < Admin::Research::ApplicationControll
   def show
     @papers = @journal.papers.ordered.limit(10)
     @kinds = @journal.kinds.ordered
+    @volumes = @journal.volumes.ordered
     breadcrumb
   end
 
diff --git a/app/helpers/admin/application_helper.rb b/app/helpers/admin/application_helper.rb
index 821138ac9a247bdf3957aecbb80db094c6b3e57c..a35df6e65a1f3e0091e1f11791d5a0f3faa178f1 100644
--- a/app/helpers/admin/application_helper.rb
+++ b/app/helpers/admin/application_helper.rb
@@ -45,6 +45,10 @@ module Admin::ApplicationHelper
                   aria-controls=\"preview\">#{ t 'preview.button'}</button>"
   end
 
+  def static_link(path)
+    raw "<a href=\"#{path}\" class=\"btn btn-light btn-xs\">#{t 'static' }</a>"
+  end
+
   def osuny_panel(title = nil, subtitle: nil, action: nil, &block)
     render  layout: "admin/layouts/themes/#{current_admin_theme}/panel",
             locals: { 
diff --git a/app/views/admin/communication/extranets/_form.html.erb b/app/views/admin/communication/extranets/_form.html.erb
index 8f2cbab3c114c84dba73e2a1e2590b73080be659..27532500a476af46882a73a5bff7e9412ecfb448 100644
--- a/app/views/admin/communication/extranets/_form.html.erb
+++ b/app/views/admin/communication/extranets/_form.html.erb
@@ -3,54 +3,39 @@
   <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
 
   <div class="row">
-    <div class="col-md-6">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('metadata') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :name %>
-          <%= f.input :host %>
-          <%= render 'admin/communication/abouts', f: f, i18n_key: 'activerecord.attributes.communication/extranet.about_' %>
-          <%= f.input :registration_contact %>
-        </div>
-      </div>
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('look_feel') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :logo,
-                      as: :single_deletable_file,
-                      input_html: { accept: '.jpg,.jpeg,.png,.svg' },
-                      preview: 200,
-                      direct_upload: true %>
-          <%= f.input :favicon,
-                      as: :single_deletable_file,
-                      input_html: { accept: '.png' },
-                      preview: 100,
-                      direct_upload: true %>
-          <%= f.input :color, as: :color %>
-        </div>
-      </div>
+    <div class="col-xl-6">
+      <%= osuny_panel t('metadata') do %>
+        <%= f.input :name %>
+        <%= f.input :host %>
+        <%= render 'admin/communication/abouts', f: f, i18n_key: 'activerecord.attributes.communication/extranet.about_' %>
+        <%= f.input :registration_contact %>
+      <% end %>
+      <%= osuny_panel t('look_feel') do %>
+        <%= f.input :logo,
+                    as: :single_deletable_file,
+                    input_html: { accept: '.jpg,.jpeg,.png,.svg' },
+                    preview: 200,
+                    direct_upload: true %>
+        <%= f.input :favicon,
+                    as: :single_deletable_file,
+                    input_html: { accept: '.png' },
+                    preview: 100,
+                    direct_upload: true %>
+        <%= f.input :color, as: :color %>
+      <% end %>
     </div>
-    <div class="col-md-6">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('legal') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :terms, as: :summernote %>
-          <%= f.input :privacy_policy, as: :summernote %>
-          <%= f.input :cookies_policy, as: :summernote %>
-        </div>
-      </div>
+    <div class="col-xl-6">
+      <%= osuny_panel t('legal') do %>
+        <%= f.input :terms, as: :summernote %>
+        <%= f.input :privacy_policy, as: :summernote %>
+        <%= f.input :cookies_policy, as: :summernote %>
+      <% end %>
     </div>
   </div>
 
-  <h3 class="mt-5"><%= t('university.sso') %></h3>
+  <h2 class="category"><%= t('university.sso') %></h2>
   <div class="row">
-    <div class="col-md-6">
+    <div class="col-xl-6">
       <%= f.input :has_sso %>
       <div class="sso-inputs">
         <%= f.input :sso_target_url, required: true %>
@@ -59,7 +44,7 @@
         <%= f.input :sso_button_label %>
       </div>
     </div>
-    <div class="col-md-6 sso-inputs">
+    <div class="col-xl-6 sso-inputs">
       <h4 class="mb-4"><%= University.human_attribute_name('sso_mapping') %></h4>
       <%= f.error_notification message: f.object.errors[:sso_mapping].to_sentence if f.object.errors[:sso_mapping].present? %>
       <%= render 'server/universities/sso_mapping', object: extranet %>
diff --git a/app/views/admin/communication/websites/_form.html.erb b/app/views/admin/communication/websites/_form.html.erb
index 9530351b137b23096920305065a86952aed822fd..df4f1c7090df8f8986b1532e7c7f616c661ffb66 100644
--- a/app/views/admin/communication/websites/_form.html.erb
+++ b/app/views/admin/communication/websites/_form.html.erb
@@ -3,49 +3,34 @@
   <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
 
   <div class="row">
-    <div class="col-md-4">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('metadata') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :name %>
-          <%= f.input :url %>
-          <%= render 'admin/communication/abouts', f: f, i18n_key: 'activerecord.attributes.communication/website.about_' %>
-          <%= f.association :languages, as: :check_boxes, required: true, wrapper_html: { class: "js-languages" } %>
-          <%= f.association :default_language, include_blank: t('simple_form.include_blanks.defaults.language'), input_html: { class: "js-default-language" } %>
-          <%= f.input :in_production %>
-        </div>
-      </div>
+    <div class="col-xl-4">
+      <%= osuny_panel t('metadata') do %>
+        <%= f.input :name %>
+        <%= f.input :url %>
+        <%= render 'admin/communication/abouts', f: f, i18n_key: 'activerecord.attributes.communication/website.about_' %>
+        <%= f.association :languages, as: :check_boxes, required: true, wrapper_html: { class: "js-languages" } %>
+        <%= f.association :default_language, include_blank: t('simple_form.include_blanks.defaults.language'), input_html: { class: "js-default-language" } %>
+        <%= f.input :in_production %>
+      <% end %>
     </div>
-    <div class="col-md-8">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('communication.website.git') %></h5>
-        </div>
-        <div class="card-body">
+    <div class="col-xl-8">
+      <%= osuny_panel t('communication.website.git') do %>
           <div class="row">
-            <div class="col-md-6">
+            <div class="col-xl-6">
               <%= f.input :git_provider, include_blank: false %>
               <%= f.input :git_endpoint %>
             </div>
-            <div class="col-md-6">
+            <div class="col-xl-6">
               <%= f.input :access_token %>
               <%= f.input :repository %>
               <%= f.input :git_branch %>
             </div>
           </div>
-        </div>
-      </div>
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('communication.website.analytics') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :plausible_url %>
-      </div>
+      <% end %>
+      <%= osuny_panel t('communication.website.analytics') do %>
+        <%= f.input :plausible_url %>
+      <% end %>
     </div>
-
   </div>
   <% content_for :action_bar_right do %>
     <%= submit f %>
diff --git a/app/views/admin/education/programs/forms/_part.html.erb b/app/views/admin/education/programs/forms/_part.html.erb
index 2141dac018fe963b7f503c34dec18821d41b01bb..41f2999ca31b43764f532899d156c1bddfbf130a 100644
--- a/app/views/admin/education/programs/forms/_part.html.erb
+++ b/app/views/admin/education/programs/forms/_part.html.erb
@@ -1,30 +1,5 @@
-<%
-collapsed ||= false
-id = "part-#{part}"
-%>
-<div class="card">
-  <div class="card-header">
-    <!--
-    <div class="card-actions float-end">
-      <button class="accordion-button bg-transparent <%= 'collapsed' if collapsed %>"
-              type="button"
-              data-bs-toggle="collapse"
-              data-bs-target="#<%= id %>"
-              aria-expanded="<%= !collapsed %>"
-              aria-controls="part-<%= part %>">
-        <i class="fa-solid fa-square-caret-down"></i>
-      </button>
-    </div>
-    -->
-    <h5 class="card-title mb-1">
-      <%= t("education.program.parts.#{part}.label") %>
-    </h5>
-    <p class="mb-0"><%= t("education.program.parts.#{part}.hint") %></p>
-  </div>
-  <div class="card-body">
-  <!-- 
-  <div class="card-body collapse <%= 'show' unless collapsed %>" id="<%= id %>">
-  -->
-    <%= yield %>
-  </div>
-</div>
+<%= osuny_panel t("education.program.parts.#{part}.label"),
+                subtitle: t("education.program.parts.#{part}.hint") do %>
+  <%= yield %>
+<% end %>
+<hr class="pure__separation">
diff --git a/app/views/admin/education/programs/show.html.erb b/app/views/admin/education/programs/show.html.erb
index 22a263d579ba7b6713a76144b35319d37783d319..32ce1a79e15d2c010b6c9935726375d26c52058f 100644
--- a/app/views/admin/education/programs/show.html.erb
+++ b/app/views/admin/education/programs/show.html.erb
@@ -73,6 +73,7 @@
       </div>
     <% end %>
     <%= render 'admin/communication/blocks/list', about: @program %>
+    <hr class="pure__separation">
     <%= render 'admin/education/programs/forms/part', part: :pedagogy, collapsed: true do %>
       <div class="row">
         <div class="col-xxl-6">
diff --git a/app/views/admin/research/journals/_form.html.erb b/app/views/admin/research/journals/_form.html.erb
index 1d9fbaa4ad4500cc869a78755a9fc6cc350d7b1d..d1acbd12809d93a9b4b7a24d53146cbaa1feb717 100644
--- a/app/views/admin/research/journals/_form.html.erb
+++ b/app/views/admin/research/journals/_form.html.erb
@@ -4,13 +4,9 @@
 
   <div class="row">
     <div class="col-md-6">
-      <div class="card flex-fill w-100">
-        <div class="card-body">
-          <%= f.input :title %>
-          <%= render 'admin/application/summary/form', f: f, about: journal %>
-          <%= f.input :issn %>
-        </div>
-      </div>
+      <%= f.input :title %>
+      <%= render 'admin/application/summary/form', f: f, about: journal %>
+      <%= f.input :issn %>
     </div>
     <div class="col-md-6">
       <%= render 'admin/application/meta_description/form', f: f, about: journal %>
diff --git a/app/views/admin/research/journals/papers/_form.html.erb b/app/views/admin/research/journals/papers/_form.html.erb
index d476a711028f2d8b38c644e0581687dfa8c524d6..295be4dfdc090c45bb7cd6a775158823732ba1e5 100644
--- a/app/views/admin/research/journals/papers/_form.html.erb
+++ b/app/views/admin/research/journals/papers/_form.html.erb
@@ -4,48 +4,38 @@
 
   <div class="row">
     <div class="col-md-8">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('content') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :title, as: :text, input_html: { rows: 3 } %>
-          <%= render 'admin/application/summary/form', f: f, about: paper %>
-          <%= f.input :abstract, as: :text, input_html: { rows: 8 } %>
-          <%= f.input :pdf %>
-          <%= f.input :text, 
-                      as: :summernote,
-                      input_html: {
-                        data: { 'summernote-config' => 'mini' }
-                      } %>
-          <%= f.input :references, 
-                      as: :summernote,
-                      input_html: {
-                        data: { 'summernote-config' => 'mini' }
-                      } %>
-        </div>
-      </div>
+      <%= osuny_panel t('content') do %>
+        <%= f.input :title, as: :text, input_html: { rows: 3 } %>
+        <%= render 'admin/application/summary/form', f: f, about: paper %>
+        <%= f.input :abstract, as: :text, input_html: { rows: 8 } %>
+        <%= f.input :pdf %>
+        <%= f.input :text, 
+                    as: :summernote,
+                    input_html: {
+                      data: { 'summernote-config' => 'mini' }
+                    } %>
+        <%= f.input :references, 
+                    as: :summernote,
+                    input_html: {
+                      data: { 'summernote-config' => 'mini' }
+                    } %>
+      <% end %>
     </div>
     <div class="col-md-4">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('metadata') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :slug,
-                      as: :string,
-                      input_html: paper.persisted? ? {} : {
-                        class: 'js-slug-input',
-                        data: { source: '#research_journal_paper_title' }
-                      } %>
-          <%= f.association :volume, collection: @journal.volumes, label: Research::Journal::Volume.model_name.human %>
-          <%= f.input :published %>
-          <%= f.input :published_at, html5: true %>
-          <%= f.input :keywords, as: :text, input_html: { rows: 2 } %>
-          <%= f.association :people, collection: current_university.people.researchers.ordered, as: :check_boxes %>
-          <%= f.association :kind, collection: @journal.kinds.ordered if @journal.kinds.any? %>
-        </div>
-      </div>
+      <%= osuny_panel t('metadata') do %>
+        <%= f.input :slug,
+                    as: :string,
+                    input_html: paper.persisted? ? {} : {
+                      class: 'js-slug-input',
+                      data: { source: '#research_journal_paper_title' }
+                    } %>
+        <%= f.association :volume, collection: @journal.volumes, label: Research::Journal::Volume.model_name.human %>
+        <%= f.input :published %>
+        <%= f.input :published_at, html5: true %>
+        <%= f.input :keywords, as: :text, input_html: { rows: 2 } %>
+        <%= f.association :people, collection: current_university.people.researchers.ordered, as: :check_boxes %>
+        <%= f.association :kind, collection: @journal.kinds.ordered if @journal.kinds.any? %>
+      <% end %>
       <%= render 'admin/application/meta_description/form', f: f, about: paper %>
     </div>
   </div>
diff --git a/app/views/admin/research/journals/papers/kinds/_form.html.erb b/app/views/admin/research/journals/papers/kinds/_form.html.erb
index 853d1f38afa3b8fe779dbf9e9dafa55c65004936..27b52e6d04df343cba523c230cf6909028fa86b1 100644
--- a/app/views/admin/research/journals/papers/kinds/_form.html.erb
+++ b/app/views/admin/research/journals/papers/kinds/_form.html.erb
@@ -5,31 +5,22 @@ url = kind.new_record?  ? admin_research_journal_kinds_path
 <%= simple_form_for kind, url: url do |f| %>
   <%= f.error_notification %>
   <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
+
   <div class="row">
-    <div class="col-md-8">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('content') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :title %>
-        </div>
-      </div>
+    <div class="col-xl-8">
+      <%= osuny_panel t('content') do %>
+        <%= f.input :title %>
+      <% end %>
     </div>
-    <div class="col-md-4">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('metadata') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :slug,
-                      as: :string,
-                      input_html: kind.persisted? ? {} : {
-                        class: 'js-slug-input',
-                        data: { source: '#research_journal_paper_kind_title' }
-                      } %>
-        </div>
-      </div>
+    <div class="col-xl-4">
+      <%= osuny_panel t('metadata') do %>
+        <%= f.input :slug,
+                    as: :string,
+                    input_html: kind.persisted? ? {} : {
+                      class: 'js-slug-input',
+                      data: { source: '#research_journal_paper_kind_title' }
+                    } %>
+      <% end %>
     </div>
   </div>
   <% content_for :action_bar_right do %>
diff --git a/app/views/admin/research/journals/papers/kinds/show.html.erb b/app/views/admin/research/journals/papers/kinds/show.html.erb
index b4f8798a4b8572bef813e791ceb9cc65c051d3c0..d3ba423580a14bdfa45ed7e479b7a360a13caeee 100644
--- a/app/views/admin/research/journals/papers/kinds/show.html.erb
+++ b/app/views/admin/research/journals/papers/kinds/show.html.erb
@@ -3,13 +3,12 @@
 <%= render 'admin/research/journals/papers/list', papers: @papers %>
 
 <% content_for :action_bar_left do %>
-  <%= link_to t('destroy'), 
+  <%= link_to t('delete'), 
               admin_research_journal_kind_path(@kind),
               data: { confirm: t('please_confirm') },
               class: button_classes_danger %>
-  <%= link_to t('static'),
-              static_admin_research_journal_kind_path(@kind),
-              class: button_classes('btn-light') if current_user.server_admin? %>
+
+  <%= static_link static_admin_research_journal_kind_path(@kind) %>
 <% end %>
 
 <% content_for :action_bar_right do %>
diff --git a/app/views/admin/research/journals/papers/show.html.erb b/app/views/admin/research/journals/papers/show.html.erb
index a4ab2037d7da3cb5eb430fa5c27ea0650ef90e41..c6c9c5bee236aa9e446a1eb6824b1171e94b547a 100644
--- a/app/views/admin/research/journals/papers/show.html.erb
+++ b/app/views/admin/research/journals/papers/show.html.erb
@@ -2,69 +2,51 @@
 
 <div class="row">
   <div class="col-md-8">
-    <div class="card flex-fill w-100">
-      <div class="card-header">
-        <h2 class="card-title mb-0 h5"><%= t('content') %></h2>
-      </div>
-      <div class="card-body">
-        <h3 class="h5"><%= Research::Journal::Paper.human_attribute_name('abstract') %></h3>
-        <p><%= @paper.abstract %></p>
-        <% if @paper.pdf.attached? %>
-          <h3 class="h5 mt-4"><%= Research::Journal::Paper.human_attribute_name('pdf') %></h3>
-          <%= link_to @paper.pdf.filename, url_for(@paper.pdf) %>
-        <% end %>
-        <h3 class="h5 mt-4"><%= Research::Journal::Paper.human_attribute_name('text') %></h3>
-        <p><%= @paper.text %></p>
-        <h3 class="h5 mt-4"><%= Research::Journal::Paper.human_attribute_name('references') %></h3>
-        <p><%= @paper.references %></p>
-      </div>
-    </div>
+    <%= osuny_panel t('content') do %>
+      <%= osuny_label Research::Journal::Paper.human_attribute_name('abstract') %>
+      <p><%= @paper.abstract %></p>
+      <% if @paper.pdf.attached? %>
+        <%= osuny_label Research::Journal::Paper.human_attribute_name('pdf') %>
+        <%= link_to @paper.pdf.filename, url_for(@paper.pdf) %>
+      <% end %>
+      <%= osuny_label Research::Journal::Paper.human_attribute_name('text') %>
+      <p><%= @paper.text %></p>
+      <%= osuny_label Research::Journal::Paper.human_attribute_name('references') %>
+      <p><%= @paper.references %></p>
+    <% end %>
     <%= render 'admin/application/summary/show', about: @paper %>
   </div>
   <div class="col-md-4">
-    <div class="card flex-fill w-100">
-      <div class="card-header">
-        <h2 class="card-title mb-0 h5"><%= t('metadata') %></h2>
-      </div>
-      <div class="card-body">
+    <%= osuny_panel t('metadata') do %>
         <% if @paper.volume %>
-          <h3 class="h5"><%= Research::Journal::Paper.human_attribute_name('volume') %></h3>
+          <%= osuny_label Research::Journal::Paper.human_attribute_name('volume') %>
           <p><%= link_to  @paper.volume,
                           [:admin, @paper.volume],
                           class: "#{'draft' unless @paper.volume.published?}" %></p>
         <% end %>
-        <h3 class="h5"><%= Research::Journal::Paper.human_attribute_name('published') %></h3>
+        <%= osuny_label Research::Journal::Paper.human_attribute_name('published') %>
         <p><%= t @paper.published %></p>
         <% if @paper.published? && @paper.published_at.present? %>
-          <h3 class="h5">
-            <%= Research::Journal::Paper.human_attribute_name('published_at') %>
-          </h3>
+          <%= osuny_label Research::Journal::Paper.human_attribute_name('published_at') %>
           <p><%= l @paper.published_at.to_time, format: :date_with_explicit_month %></p>
         <% end %>
         <% unless @paper.keywords.blank? %>
-          <h3 class="h5">
-            <%= Research::Journal::Paper.human_attribute_name('keywords') %>
-          </h3>
+          <%= osuny_label Research::Journal::Paper.human_attribute_name('keywords') %>
           <p><%= @paper.keywords %></p>
         <% end %>
         <% if @paper.kind %>
-          <h3 class="h5">
-            <%= Research::Journal::Paper.human_attribute_name('kind') %>
-          </h3>
+          <%= osuny_label Research::Journal::Paper.human_attribute_name('kind') %>
           <p><%= link_to @paper.kind, admin_research_journal_kind_path(@paper.kind) %></p>
         <% end %>
         <% if @paper.people.any? %>
-          <h3 class="h5">
-            <%= Research::Journal::Paper.human_attribute_name('people') %>
-          </h3>
+          <%= osuny_label Research::Journal::Paper.human_attribute_name('people') %>
           <ul class="list-unstyled mb-0">
             <% @paper.people.each do |person| %>
               <li><%= link_to person, admin_research_researcher_path(person) %></li>
             <% end %>
           </ul>
         <% end %>
-      </div>
-    </div>
+    <% end %>
     <%= render 'admin/application/meta_description/show', about: @paper %>
   </div>
 </div>
diff --git a/app/views/admin/research/journals/show.html.erb b/app/views/admin/research/journals/show.html.erb
index d3a88ddf1c0a69badfb2954a989878f82fde4351..2d80a449b8f1f02d0734bdbf893fab4a566abf20 100644
--- a/app/views/admin/research/journals/show.html.erb
+++ b/app/views/admin/research/journals/show.html.erb
@@ -20,60 +20,54 @@
   </div>
 </div>
 
-<div class="float-end">
-  <%= link_to t('create'),
-              new_admin_research_journal_volume_path(journal_id: @journal),
-              class: button_classes %>
-</div>
-<h2 class="h4">
-  <%= link_to Research::Journal::Volume.model_name.human(count: 2),
-              admin_research_journal_volumes_path(journal_id: @journal) %>
-</h2>
-<div class="row">
-  <% @journal.volumes.ordered.limit(4).each do |volume| %>
-    <div class="col-md-3 mt-4 p-0">
-      <div class="card">
-        <%= kamifusen_tag volume.featured_image, width: 600, class: 'img-fluid' if volume.featured_image.attached? %>
-        <div class="card-body">
-          <%= link_to volume,
-                      admin_research_journal_volume_path(journal_id: @journal, id: volume),
-                      class: "stretched-link #{'draft' unless volume.published?}" %>
+<%
+action = link_to    t('create'),
+                    new_admin_research_journal_volume_path(journal_id: @journal),
+                    class: button_classes
+subtitle = link_to  t('communication.website.see_all', number: @volumes.count),
+                    admin_research_journal_volumes_path(journal_id: @journal)
+%>
+<%= osuny_panel Research::Journal::Volume.model_name.human(count: 2), subtitle: subtitle, action: action do %>
+  <div class="row">
+    <% @volumes.limit(4).each do |volume| %>
+      <div class="col-md-6 col-xl-3">
+        <div class="card">
+          <%= kamifusen_tag volume.featured_image, width: 600, class: 'img-fluid' if volume.featured_image.attached? %>
+          <div class="card-body">
+            <%= link_to volume,
+                        admin_research_journal_volume_path(journal_id: @journal, id: volume),
+                        class: "stretched-link #{'draft' unless volume.published?}" %>
+          </div>
         </div>
       </div>
-    </div>
-  <% end %>
-</div>
+    <% end %>
+  </div>
+<% end %>
 
 <div class="row">
-  <div class="col-md-8">
-    <div class="card mt-5">
-      <div class="card-header">
-        <div class="float-end">
-          <%= link_to t('create'),
-                      new_admin_research_journal_paper_path(journal_id: @journal),
-                      class: button_classes %>
-        </div>
-        <h2 class="card-title">
-          <%= link_to Research::Journal::Paper.model_name.human(count: 2),
-                      admin_research_journal_papers_path(journal_id: @journal) %></h2>
-      </div>
+  <div class="col-xl-8">
+    <%
+    action = link_to    t('create'),
+                        new_admin_research_journal_paper_path(journal_id: @journal),
+                        class: button_classes
+    subtitle = link_to  t('communication.website.see_all', number: @papers.count),
+                        admin_research_journal_papers_path(journal_id: @journal)
+    %>
+    <%= osuny_panel Research::Journal::Paper.model_name.human(count: 2), subtitle: subtitle, action: action do %>
       <%= render 'admin/research/journals/papers/list', papers: @papers %>
-    </div>
+    <% end %>
   </div>
-  <div class="col-md-4">
-    <div class="card mt-5">
-      <div class="card-header">
-        <div class="float-end">
-          <%= link_to t('create'),
-                      new_admin_research_journal_kind_path(journal_id: @journal),
-                      class: button_classes %>
-        </div>
-        <h2 class="card-title">
-          <%= link_to Research::Journal::Paper::Kind.model_name.human(count: 2),
-                      admin_research_journal_kind_path(journal_id: @journal) %></h2>
-      </div>
+  <div class="col-xl-4">
+    <%
+    action = link_to    t('create'),
+                        new_admin_research_journal_kind_path(journal_id: @journal),
+                        class: button_classes
+    subtitle = link_to  t('communication.website.see_all', number: @kinds.count),
+                        admin_research_journal_kinds_path(journal_id: @journal)
+    %>
+    <%= osuny_panel Research::Journal::Paper::Kind.model_name.human(count: 2), subtitle: subtitle, action: action do %>
       <%= render 'admin/research/journals/papers/kinds/list', kinds: @kinds %>
-    </div>
+    <% end %>
   </div>
 </div>
 
diff --git a/app/views/admin/research/journals/volumes/_form.html.erb b/app/views/admin/research/journals/volumes/_form.html.erb
index 7d39bfe89911ab1eda2c2dd64151cc649f4afc48..70c08a827804939262c0ff4cff1cbb4102adc304 100644
--- a/app/views/admin/research/journals/volumes/_form.html.erb
+++ b/app/views/admin/research/journals/volumes/_form.html.erb
@@ -3,37 +3,27 @@
   <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
 
   <div class="row">
-    <div class="col-md-8">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('content') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :title %>
-          <%= render 'admin/application/summary/form', f: f, about: volume %>
-          <%= f.input :text, as: :summernote %>
-        </div>
-      </div>
+    <div class="col-xl-8">
+      <%= osuny_panel t('content') do %>
+        <%= f.input :title %>
+        <%= render 'admin/application/summary/form', f: f, about: volume %>
+        <%= f.input :text, as: :summernote %>
+      <% end %>
       <%= render 'admin/application/meta_description/form', f: f, about: volume %>
     </div>
-    <div class="col-md-4">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('metadata') %></h5>
-        </div>
-        <div class="card-body">
-          <%= f.input :slug,
-                      as: :string,
-                      input_html: volume.persisted? ? {} : {
-                        class: 'js-slug-input',
-                        data: { source: '#research_journal_volume_title' }
-                      } %>
-          <%= f.input :number %>
-          <%= f.input :published %>
-          <%= f.input :published_at, html5: true %>
-          <%= f.input :keywords %>
-        </div>
-      </div>
+    <div class="col-xl-4">
+      <%= osuny_panel t('metadata') do %>
+        <%= f.input :slug,
+                    as: :string,
+                    input_html: volume.persisted? ? {} : {
+                      class: 'js-slug-input',
+                      data: { source: '#research_journal_volume_title' }
+                    } %>
+        <%= f.input :number %>
+        <%= f.input :published %>
+        <%= f.input :published_at, html5: true %>
+        <%= f.input :keywords %>
+      <% end %>
       <%= render 'admin/application/featured_image/edit', about: volume, f: f %>
     </div>
   </div>
diff --git a/app/views/admin/research/journals/volumes/index.html.erb b/app/views/admin/research/journals/volumes/index.html.erb
index 95d7f70af8d410bf36145da334b05a89d8464101..a484af04c9415c739c69d318f3e2167abefb1736 100644
--- a/app/views/admin/research/journals/volumes/index.html.erb
+++ b/app/views/admin/research/journals/volumes/index.html.erb
@@ -4,7 +4,8 @@
   <table class="<%= table_classes %>">
     <thead>
       <tr>
-        <th><%= Research::Journal::Volume.model_name.human %></th>
+        <th><%= Research::Journal::Volume.human_attribute_name('title') %></th>
+        <th><%= Research::Journal::Volume.human_attribute_name('number') %></th>
         <th><%= Research::Journal::Volume.human_attribute_name('featured_image') %></th>
         <th><%= Research::Journal::Volume.human_attribute_name('published_at') %></th>
         <th></th>
@@ -18,6 +19,7 @@
                         admin_research_journal_volume_path(journal_id: @journal, id: volume),
                         class: "#{'draft' unless volume.published?}" %>
           </td>
+          <td><%= volume.number %></td>
           <td><%= image_tag volume.featured_image.variant(resize: 'x200'),
                             height: 100 if volume.featured_image.attached? %></td>
           <td><%= l(volume.published_at.to_time, format: :date_with_explicit_month) if volume.published_at.present? %></td>
diff --git a/app/views/admin/research/journals/volumes/show.html.erb b/app/views/admin/research/journals/volumes/show.html.erb
index 1872da74cef693b7fde577f38866b0bd6b54e390..b5c16a3d836326f867b87d1d14f17f64d496b61d 100644
--- a/app/views/admin/research/journals/volumes/show.html.erb
+++ b/app/views/admin/research/journals/volumes/show.html.erb
@@ -4,62 +4,58 @@
   <div class="col-md-9">
     <%= render 'admin/application/summary/show', about: @volume %>
     <% if @papers.any? %>
-      <h3 class="h5 mt-5"><%= Research::Journal::Paper.model_name.human(count: 2) %></h3>
-      <div class="table-responsive">
-        <table class="<%= table_classes %>">
-          <thead>
-            <tr>
-              <% if can? :reorder, Research::Journal::Paper %>
-                <th width="20" class="ps-0">&nbsp;</th>
-              <% end %>
-              <th class="ps-0"><%= Research::Journal::Paper.human_attribute_name('title') %></th>
-              <th><%= Research::Journal::Paper.human_attribute_name('published_at') %></th>
-              <th></th>
-            </tr>
-          </thead>
-          <tbody data-sortable data-sort-url="<%= reorder_admin_research_journal_papers_path(journal_id: @journal.id) %>">
-            <% @papers.each do |paper| %>
-              <tr data-id="<%= paper.id %>">
+      <%= osuny_panel Research::Journal::Paper.model_name.human(count: 2) do %>
+        <div class="table-responsive">
+          <table class="<%= table_classes %>">
+            <thead>
+              <tr>
                 <% if can? :reorder, Research::Journal::Paper %>
-                  <td><i class="fa fa-bars handle"></i></td>
+                  <th width="20" class="ps-0">&nbsp;</th>
                 <% end %>
-                <td>
-                  <%= link_to paper,
-                              admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
-                              class: "#{'draft' unless paper.published?}" %>
-                </td>
-                <td><%= l(paper.published_at.to_time, format: :date_with_explicit_month) if paper.published_at.present? %></td>
-                <td class="text-end">
-                  <div class="btn-group" role="group">
-                    <%= link_to t('edit'),
-                                edit_admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
-                                class: button_classes %>
-                    <%= link_to t('delete'),
-                                admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
-                                method: :delete,
-                                data: { confirm: t('please_confirm') },
-                                class: button_classes_danger %>
-                  </div>
-                </td>
+                <th class="ps-0"><%= Research::Journal::Paper.human_attribute_name('title') %></th>
+                <th><%= Research::Journal::Paper.human_attribute_name('published_at') %></th>
+                <th></th>
               </tr>
-            <% end %>
-          </tbody>
-        </table>
-      </div>
+            </thead>
+            <tbody data-sortable data-sort-url="<%= reorder_admin_research_journal_papers_path(journal_id: @journal.id) %>">
+              <% @papers.each do |paper| %>
+                <tr data-id="<%= paper.id %>">
+                  <% if can? :reorder, Research::Journal::Paper %>
+                    <td><i class="fa fa-bars handle"></i></td>
+                  <% end %>
+                  <td>
+                    <%= link_to paper,
+                                admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
+                                class: "#{'draft' unless paper.published?}" %>
+                  </td>
+                  <td><%= l(paper.published_at.to_time, format: :date_with_explicit_month) if paper.published_at.present? %></td>
+                  <td class="text-end">
+                    <div class="btn-group" role="group">
+                      <%= link_to t('edit'),
+                                  edit_admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
+                                  class: button_classes %>
+                      <%= link_to t('delete'),
+                                  admin_research_journal_paper_path(journal_id: paper.journal, id: paper),
+                                  method: :delete,
+                                  data: { confirm: t('please_confirm') },
+                                  class: button_classes_danger %>
+                    </div>
+                  </td>
+                </tr>
+              <% end %>
+            </tbody>
+          </table>
+        </div>
+      <% end %>
     <% end %>
   </div>
   <div class="col-md-3">
-    <div class="card flex-fill w-100">
-      <div class="card-header">
-        <h2 class="card-title mb-0 h5"><%= t('metadata') %></h2>
-      </div>
-      <div class="card-body">
-        <h3 class="h5"><%= Research::Journal::Volume.human_attribute_name('number') %></h3>
-        <p><%= @volume.number %></p>
-        <h3 class="h5"><%= Research::Journal::Volume.human_attribute_name('published_at') %></h3>
-        <p><%= l @volume.published_at.to_time, format: :date_with_explicit_month if @volume.published_at %></p>
-      </div>
-    </div>
+    <%= osuny_panel t('metadata') do %>
+      <%= osuny_label Research::Journal::Volume.human_attribute_name('number') %>
+      <p><%= @volume.number %></p>
+      <%= osuny_label Research::Journal::Volume.human_attribute_name('published_at') %>
+      <p><%= l @volume.published_at.to_time, format: :date_with_explicit_month if @volume.published_at %></p>
+    <% end %>
     <%= render 'admin/application/featured_image/show', about: @volume %>
     <%= render 'admin/application/meta_description/show', about: @volume %>
   </div>
diff --git a/app/views/admin/research/laboratories/_form.html.erb b/app/views/admin/research/laboratories/_form.html.erb
index c1b127b75f163448250d88ed769792be3c7e0db7..8270d310c83714d484892f0f48bf641ffefccd1c 100644
--- a/app/views/admin/research/laboratories/_form.html.erb
+++ b/app/views/admin/research/laboratories/_form.html.erb
@@ -4,15 +4,11 @@
 
   <div class="row">
     <div class="col-md-6">
-      <div class="card flex-fill w-100">
-        <div class="card-body">
-          <%= f.input :name %>
-          <%= f.input :address %>
-          <%= f.input :zipcode %>
-          <%= f.input :city %>
-          <%= f.input :country, input_html: { class: 'form-select' } %>
-        </div>
-      </div>
+      <%= f.input :name %>
+      <%= f.input :address %>
+      <%= f.input :zipcode %>
+      <%= f.input :city %>
+      <%= f.input :country, input_html: { class: 'form-select' } %>
     </div>
   </div>
   <% content_for :action_bar_right do %>
diff --git a/app/views/admin/research/laboratories/axes/_form.html.erb b/app/views/admin/research/laboratories/axes/_form.html.erb
index c4d484522cbedc5a595729513443a263f473fa55..66c1f0851138b5ca6b446219562fb1ad71f4cc75 100644
--- a/app/views/admin/research/laboratories/axes/_form.html.erb
+++ b/app/views/admin/research/laboratories/axes/_form.html.erb
@@ -4,12 +4,8 @@
 
   <div class="row">
     <div class="col-md-8">
-      <div class="card flex-fill w-100">
-        <div class="card-header">
-          <h5 class="card-title mb-0"><%= t('content') %></h5>
-        </div>
-        <div class="card-body">
-          <div class="row">
+      <%= osuny_panel t('content') do %>
+          <div class="row pure__row--small">
             <div class="col-lg-8 col-xxl-9">
               <%= f.input :name %>
             </div>
@@ -18,8 +14,7 @@
             </div>
           </div>
           <%= f.input :text, as: :summernote %>
-        </div>
-      </div>
+      <% end %>
     </div>
     <div class="col-md-4">
       <%= render 'admin/application/meta_description/form', f: f, about: axis %>
diff --git a/app/views/admin/research/laboratories/axes/_list.html.erb b/app/views/admin/research/laboratories/axes/_list.html.erb
index 551a5fba4639756867af50e6e8344e71ffe1e403..62dec193111ca105a30deec9489b7ffd7399190d 100644
--- a/app/views/admin/research/laboratories/axes/_list.html.erb
+++ b/app/views/admin/research/laboratories/axes/_list.html.erb
@@ -5,7 +5,7 @@
         <% if can? :reorder, Research::Laboratory::Axis %>
           <th width="20" class="ps-0">&nbsp;</th>
         <% end %>
-        <th><%= Research::Laboratory::Axis.model_name.human %></th>
+        <th><%= Research::Laboratory::Axis.human_attribute_name('name') %></th>
         <th><%= Research::Laboratory::Axis.human_attribute_name('short_name') %></th>
         <th></th>
       </tr>
diff --git a/app/views/admin/research/laboratories/axes/show.html.erb b/app/views/admin/research/laboratories/axes/show.html.erb
index a937db7ca0dcf7160fc9a4172eec2f1317acfd87..e0691afb6c498430efe9c1515bd44e99d6841459 100644
--- a/app/views/admin/research/laboratories/axes/show.html.erb
+++ b/app/views/admin/research/laboratories/axes/show.html.erb
@@ -2,19 +2,14 @@
 
 <div class="row">
   <div class="col-md-8">
-    <div class="card flex-fill w-100">
-      <div class="card-header">
-        <h2 class="card-title mb-0 h5"><%= t('content') %></h2>
-      </div>
-      <div class="card-body">
-        <% unless @axis.short_name.empty? %>
-        <h3 class="h5"><%= Research::Laboratory::Axis.human_attribute_name('short_name') %></h3>
-        <%= @axis.short_name %>
-        <% end %>
-        <h3 class="h5 mt-4"><%= Research::Laboratory::Axis.human_attribute_name('text') %></h3>
-        <%= @axis.text %>
-      </div>
-    </div>
+    <%= osuny_panel t('content') do %>
+      <% unless @axis.short_name.empty? %>
+        <%= osuny_label Research::Laboratory::Axis.human_attribute_name('short_name') %>
+        <p><%= @axis.short_name %></p>
+      <% end %>
+      <%= osuny_label Research::Laboratory::Axis.human_attribute_name('text') %>
+      <%= sanitize @axis.text.to_s %>
+    <% end %>
   </div>
   <div class="col-md-4">
     <%= render 'admin/application/meta_description/show', about: @axis %>
diff --git a/app/views/admin/research/laboratories/show.html.erb b/app/views/admin/research/laboratories/show.html.erb
index e9f522a018cd2b13b2c5a74691d91f2278cec996..388c3b317efdba127399f8bd591f459f87e66e97 100644
--- a/app/views/admin/research/laboratories/show.html.erb
+++ b/app/views/admin/research/laboratories/show.html.erb
@@ -1,18 +1,15 @@
 <% content_for :title, @laboratory %>
 
-<div class="card mt-5">
-  <div class="card-header">
-    <div class="float-end">
-      <%= link_to t('create'),
-                  new_admin_research_laboratory_axis_path(laboratory_id: @laboratory),
-                  class: button_classes %>
-    </div>
-    <h2 class="card-title">
-      <%= link_to Research::Laboratory::Axis.model_name.human(count: 2),
-                  admin_research_laboratory_axes_path(laboratory_id: @laboratory) %></h2>
-  </div>
+<%
+action = link_to    t('create'),
+                    new_admin_research_laboratory_axis_path(laboratory_id: @laboratory),
+                    class: button_classes
+subtitle = link_to  t('communication.website.see_all', number: @axes.count),
+                    admin_research_laboratory_axes_path(laboratory_id: @laboratory)
+%>
+<%= osuny_panel Research::Laboratory::Axis.model_name.human(count: 2), action: action, subtitle: subtitle do %>
   <%= render 'admin/research/laboratories/axes/list', axes: @axes %>
-</div>
+<% end %>
 
 <% content_for :action_bar_left do %>
   <%= destroy_link @laboratory %>
diff --git a/app/views/admin/research/theses/_form.html.erb b/app/views/admin/research/theses/_form.html.erb
index 977be86af39a123e4015ccbc15638212c7af8907..87696eaf076bb99812ca9e57ca9d4df99bb9ffb1 100644
--- a/app/views/admin/research/theses/_form.html.erb
+++ b/app/views/admin/research/theses/_form.html.erb
@@ -3,22 +3,20 @@
   <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
 
   <div class="row">
-    <div class="col-md-6">
-      <div class="card flex-fill w-100">
-        <div class="card-body">
-          <%= f.input :title %>
-          <%= f.input :abstract %>
-          <%= f.input :started_at, html5: true %>
-          <%= f.input :completed %>
-          <%= f.input :completed_at, html5: true %>
-          <%= f.association :laboratory,
-                            collection: current_university.research_laboratories.ordered %>
-          <%= f.association :author,
-                            collection: current_university.people.researchers.ordered %>
-          <%= f.association :director,
-                            collection: current_university.people.researchers.ordered %>
-        </div>
-      </div>
+    <div class="col-xl-6">
+      <%= f.input :title %>
+      <%= f.input :abstract, input_html: { rows: 10 } %>
+    </div>
+    <div class="col-xl-6">
+      <%= f.input :started_at, html5: true %>
+      <%= f.input :completed %>
+      <%= f.input :completed_at, html5: true %>
+      <%= f.association :laboratory,
+                        collection: current_university.research_laboratories.ordered %>
+      <%= f.association :author,
+                        collection: current_university.people.researchers.ordered %>
+      <%= f.association :director,
+                        collection: current_university.people.researchers.ordered %>
     </div>
   </div>
   <% content_for :action_bar_right do %>
diff --git a/app/views/admin/research/theses/_list.html.erb b/app/views/admin/research/theses/_list.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..a5c1e120521356288ea377f2278ba8c39e881579
--- /dev/null
+++ b/app/views/admin/research/theses/_list.html.erb
@@ -0,0 +1,26 @@
+<div class="table-responsive">
+  <table class="<%= table_classes %>">
+    <thead>
+      <tr>
+        <th><%= Research::Thesis.human_attribute_name('title') %></th>
+        <th><%= Research::Thesis.human_attribute_name('laboratory') %></th>
+        <th></th>
+      </tr>
+    </thead>
+    <tbody>
+      <% @theses.each do |thesis| %>
+        <tr>
+          <td><%= link_to thesis, [:admin, thesis] %></td>
+          <td><%= link_to thesis.laboratory, [:admin, thesis.laboratory] %></td>
+          <td class="text-end">
+            <div class="btn-group" role="group">
+              <%= edit_link thesis %>
+              <%= destroy_link thesis %>
+            </div>
+          </td>
+        </tr>
+      <% end %>
+    </tbody>
+  </table>
+</div>
+<%= paginate @theses, theme: 'bootstrap-5' %>
\ No newline at end of file
diff --git a/app/views/admin/research/theses/index.html.erb b/app/views/admin/research/theses/index.html.erb
index 916c3fc1cc40c8b0c1bcaadd7c8864283040c032..4e5897a2246bf316d93696d14e8ed78e33a0424e 100644
--- a/app/views/admin/research/theses/index.html.erb
+++ b/app/views/admin/research/theses/index.html.erb
@@ -1,34 +1,7 @@
 <% content_for :title, Research::Thesis.model_name.human(count: 2) %>
 
 <%= render 'filters', current_path: admin_research_theses_path, filters: @filters if @filters.any?  %>
-
-<div class="table-responsive">
-  <table class="<%= table_classes %>">
-    <thead>
-      <tr>
-        <th><%= Research::Thesis.human_attribute_name('title') %></th>
-        <th></th>
-      </tr>
-    </thead>
-
-    <tbody>
-      <% @theses.each do |thesis| %>
-        <tr>
-          <td><%= link_to thesis, [:admin, thesis] %></td>
-          <td class="text-end">
-            <div class="btn-group" role="group">
-              <%= edit_link thesis %>
-              <%= destroy_link thesis %>
-            </div>
-          </td>
-        </tr>
-      <% end %>
-    </tbody>
-  </table>
-</div>
-
-<%= paginate @theses, theme: 'bootstrap-5' %>
-
+<%= render 'admin/research/theses/list', theses: @theses %>
 
 <% content_for :action_bar_right do %>
   <%= create_link Research::Thesis %>
diff --git a/app/views/admin/research/theses/show.html.erb b/app/views/admin/research/theses/show.html.erb
index 53a07b0ea2da6f9bca5fa0bea6bc12d0530823dc..9ed9ecdedc67e48982d7c7f341fc09858b6a2faa 100644
--- a/app/views/admin/research/theses/show.html.erb
+++ b/app/views/admin/research/theses/show.html.erb
@@ -1,5 +1,29 @@
 <% content_for :title, @thesis %>
 
+<div class="row">
+  <div class="col-xl-6">
+    <%= simple_format @thesis.abstract %>
+  </div>
+  <div class="col-xl-6">
+    <% if @thesis.started_at %>
+      <%= osuny_label Research::Thesis.human_attribute_name('started_at') %>
+      <p><%= l @thesis.started_at %></p>
+    <% end %>
+    <%= osuny_label Research::Thesis.human_attribute_name('completed') %>
+    <p><%= t @thesis.completed %></p>
+    <% if @thesis.completed_at %>
+      <%= osuny_label Research::Thesis.human_attribute_name('completed_at') %>
+      <p><%= l @thesis.completed_at %></p>
+    <% end %>
+    <%= osuny_label Research::Thesis.human_attribute_name('author') %>
+    <p><%= link_to @thesis.author, [:admin, @thesis.author] %></p>
+    <%= osuny_label Research::Thesis.human_attribute_name('laboratory') %>
+    <p><%= link_to @thesis.laboratory, [:admin, @thesis.laboratory] %></p>
+    <%= osuny_label Research::Thesis.human_attribute_name('director') %>
+    <p><%= link_to @thesis.director, [:admin, @thesis.director] %></p>
+  </div>
+</div>
+
 <% content_for :action_bar_left do %>
   <%= destroy_link @thesis %>
 <% end %>