/* Kemenhub repository theme — inner pages (browse, latest, search, auth, about, policies), empty states, Tom Select. */

/* ---------- Page heading band ---------- */
.ka-pagehead__text { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ka-crumbs { display: flex; flex-wrap: wrap; gap: 6px; font: 500 12px/1.5 var(--a-sans); color: rgba(255, 255, 255, .75); }
body.ka .ka-crumbs a { color: rgba(255, 255, 255, .75); text-decoration: none; }
body.ka .ka-crumbs a:hover { color: #fff; text-decoration: underline; }
.ka-pagehead__lead { margin: 0; max-width: 720px; font: 400 16px/1.6 var(--a-sans); color: rgba(255, 255, 255, .8); }
body.ka:has(.ep_summary_content) .ka-crumbs, body.ka:has(.ep_summary_content) .ka-crumbs a { color: var(--a-text-secondary); }
body.ka:has(.ep_summary_content) .ka-pagehead__lead { color: var(--a-text-secondary); }
body.ka .ka-pagehead__inner { align-items: flex-end; }

/* ---------- Shared bits ---------- */
.ka-callout { display: flex; gap: 12px; align-items: flex-start; padding: 16px 20px; border-radius: var(--a-radius-lg); background: var(--a-surface-subtle); color: var(--a-text-primary); }
.ka-callout img { flex-shrink: 0; margin-top: 2px; }
.ka-callout strong { display: block; font: 600 14px/1.4 var(--a-sans); }
.ka-callout p { margin: 4px 0 0; font: 400 14px/1.55 var(--a-sans); color: var(--a-text-secondary); }

.ka-emptystate {
  display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
  padding: 40px 24px; border: 1px dashed var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card);
}
.ka-emptystate.ka-card { border-style: solid; }
.ka-emptystate img { width: 200px; height: auto; margin-bottom: 8px; }
.ka-emptystate__title { display: block; margin: 0; font: 700 20px/1.3 var(--a-sans); color: var(--a-text-primary); }
.ka-emptystate__body { display: block; margin: 0; max-width: 480px; font: 400 14px/1.6 var(--a-sans); color: var(--a-text-secondary); }
.ka-emptystate__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 12px; }
.ka-emptystate code { word-break: break-all; }

.ka-skeleton { height: 148px; border-radius: var(--a-radius-lg); background: linear-gradient(90deg, var(--a-surface-subtle) 0%, #f3f6fa 50%, var(--a-surface-subtle) 100%) 0 0 / 200% 100%; animation: ka-shimmer 1.4s linear infinite; }
@keyframes ka-shimmer { to { background-position: -200% 0; } }

body.ka .ka-chip { gap: 6px; align-items: center; }
.ka-chip__count { padding: 0 6px; border-radius: 999px; background: #fff; font: 600 11px/1.6 var(--a-sans); color: var(--a-text-secondary); }
.ka-chip img { display: block; }

.ka-copy { display: flex; gap: 8px; align-items: stretch; }
.ka-copy .ka-oai__url { flex: 1; min-width: 0; }
.ka-copy__btn { flex-shrink: 0; padding: 0 12px; border: 1px solid var(--a-border); border-radius: var(--a-radius-sm); background: var(--a-surface-card); font: 600 12px/1 var(--a-sans); color: var(--a-brand-primary); cursor: pointer; transition: background-color var(--a-dur-fast) ease, color var(--a-dur-fast) ease, transform 120ms var(--a-ease-out); }
.ka-copy__btn:active { transform: scale(0.97); }
.ka-copy__btn.is-done { background: var(--a-brand-primary); color: #fff; border-color: var(--a-brand-primary); }

.ka-footer__address:empty, .ka-footer__address:has(> :empty:only-child) { display: none; }
.ka-footer__col .ka-footer__address { white-space: pre-line; }

/* ---------- Browse (/view/) ---------- */
body.ka .ep_view_browse_intro { margin: 0 0 24px; font: 700 24px/1.3 var(--a-sans); color: var(--a-text-primary); }
body.ka .ep_view_browse_list ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
body.ka .ka-viewcard {
  position: relative; display: flex; flex-direction: column; gap: 12px; padding: 24px;
  border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card);
  transition: border-color var(--a-dur-fast) ease, box-shadow var(--a-dur) ease, transform var(--a-dur) var(--a-ease-out);
}
.ka-viewcard__icon { width: 44px; height: 44px; border-radius: var(--a-radius-md); background: var(--a-surface-subtle) center / 22px no-repeat; }
body.ka .ka-viewcard > a { font: 600 18px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none; }
body.ka .ka-viewcard > a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ka-viewcard__desc { min-height: 1.5em; font: 400 14px/1.55 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ka-viewcard:focus-within { outline: 2px solid var(--a-brand-accent); outline-offset: 2px; }
body.ka .ka-viewcard > a:focus-visible { outline: none; }

/* Browse sub-pages (year/subject lists and item lists) */
body.ka .ep_view_menu, body.ka .ep_view_cols { padding: 24px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); }
body.ka .ep_view_cols li a, body.ka .ep_view_menu li a { font-weight: 600; text-decoration: none; }
body.ka .ep_view_jump { margin-bottom: 16px; }
body.ka .ep_view_group_by { display: flex; flex-wrap: wrap; gap: 8px; }
body.ka .ep_view_group_by a, body.ka .ep_view_group_by span.ep_view_group_by_current {
  display: inline-flex; padding: 6px 14px; border-radius: 999px; background: var(--a-surface-subtle); color: var(--a-text-primary); font: 600 13px/1.4 var(--a-sans); text-decoration: none;
}
body.ka .ep_view_group_by span.ep_view_group_by_current { background: var(--a-brand-primary); color: #fff; }

/* ---------- Latest (/cgi/latest) ---------- */
body.ka .ep_tm_page_content:has(> .ka-follow) { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0 32px; align-items: start; }
body.ka .ep_tm_page_content:has(> .ka-follow) > * { grid-column: 1; }
body.ka .ep_tm_page_content > .ka-follow { grid-column: 2; grid-row: 1 / span 50; position: sticky; top: 24px; display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.ka-follow .ka-body { margin: 0; }
.ka-follow .ka-chips { margin-top: 8px; }
/* EPrints prints a "go to homepage" link under the list; the nav already covers it. */
body.ka .ep_tm_page_content:has(> .ka-follow) > p:last-child:has(> a:only-child) { display: none; }
body.ka .ep_tm_page_content:has(> .ka-follow) > h2 { margin: 24px 0 12px; font: 700 11px/1.4 var(--a-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a-text-secondary); }

/* ---------- Search results ----------
   Toolbar: [Ubah pencarian] [Pencarian baru] ........ Urutkan [select] [Terapkan]
   Export row: Ekspor N hasil sebagai [format] [Ekspor] ....... [RSS] [Atom] */
body.ka .ep_search_controls.ka-toolbar, body.ka .ep_search_controls {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  margin: 0 0 16px; padding: 12px 16px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card);
}
body.ka .ep_search_controls > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font: 500 14px/1.5 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ep_search_controls .ka-sep { display: none; }
body.ka .ep_search_control a, body.ka .ep_search_controls > div > a {
  display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border: 1px solid var(--a-border); border-radius: var(--a-radius-md);
  background: var(--a-surface-card); font: 600 13px/1 var(--a-sans); color: var(--a-text-primary); text-decoration: none;
  transition: background-color var(--a-dur-fast) ease, border-color var(--a-dur-fast) ease, transform 120ms var(--a-ease-out);
}
body.ka .ep_search_control a:hover { background: var(--a-surface-subtle); }
body.ka .ep_search_control a:active { transform: scale(0.97); }
body.ka .ep_search_reorder { margin-left: auto; }
body.ka .ep_search_reorder form { display: flex; align-items: center; gap: 8px; margin: 0; }
body.ka .ep_search_reorder label { display: flex; align-items: center; gap: 8px; margin: 0; font: 600 13px/1.4 var(--a-sans); color: var(--a-text-secondary); white-space: nowrap; }
body.ka .ep_search_reorder .ts-wrapper { width: 240px; min-width: 0; }
body.ka .ep_search_reorder .ts-wrapper .ts-control, body.ka .ka-export .ts-wrapper .ts-control { min-height: 36px; padding-top: 6px; padding-bottom: 6px; font-size: 13px; }
body.ka .ep_search_reorder input.ep_form_action_button, body.ka .ka-export input.ep_form_action_button {
  height: 36px; padding: 0 16px; font-size: 13px; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border);
}
body.ka .ep_search_reorder input.ep_form_action_button:hover, body.ka .ka-export input.ep_form_action_button:hover { background: var(--a-surface-subtle); }

body.ka .ep_search_export { display: block; margin: 0 0 24px; }
body.ka .ep_search_export form { margin: 0; }
body.ka .ka-export .ep_export_bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  padding: 10px 16px; border-radius: var(--a-radius-lg); background: var(--a-surface-subtle);
}
body.ka .ka-export__format { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.ka .ka-export__format label { font: 600 13px/1.4 var(--a-sans); color: var(--a-text-secondary); white-space: nowrap; }
body.ka .ka-export .ts-wrapper { width: 220px; min-width: 0; }
body.ka .ka-export__feeds { display: flex; flex-wrap: wrap; gap: 6px; }
body.ka .ep_search_feed a {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--a-surface-card);
  font: 600 12px/1 var(--a-sans); color: var(--a-text-primary); text-decoration: none; transition: background-color var(--a-dur-fast) ease;
}
body.ka .ep_search_feed a:hover { background: #fff8e1; }
body.ka .ep_search_feed img { width: 12px; height: 12px; }
body.ka .ka-export__tools:empty, body.ka .ka-export__tools:not(:has(*)) { display: none; }
body.ka .ka-export__tools { margin-top: 8px; }

/* Zero results: the empty state replaces export and the sort control is meaningless. */
body.ka.ka-no-results .ep_search_export, body.ka.ka-no-results .ep_search_reorder { display: none; }
body.ka.ka-no-results .ep_search_controls { justify-content: flex-start; }
body.ka .ka-emptystate--search { display: flex; }

/* Results list, paging */
body.ka .ep_search_controls_bottom { margin-top: 16px; }
body.ka .ep_search_paginate, body.ka .ep_paginate_bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* ---------- Advanced search & other EPrints forms ---------- */
body.ka:has(.ep_search_fields) .ep_tm_page_content > form,
body.ka .ep_tm_page_content > form:has(.ep_search_fields) {
  display: flex; flex-direction: column; gap: 24px; padding: 32px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card);
}
body.ka .ep_search_fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; width: 100%; border: 0; }
body.ka .ep_search_fields > .ep_table_row { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label help" "input input"; gap: 8px; padding: 0; border: 0; }
body.ka .ep_search_fields > .ep_table_row > .ep_multi_heading { grid-area: label; display: block; width: auto; padding: 0; border: 0; text-align: left; font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); }
body.ka .ep_search_fields > .ep_table_row > .ep_multi_input { grid-area: input; display: flex; flex-wrap: wrap; gap: 8px; width: auto; padding: 0; border: 0; }
body.ka .ep_search_fields > .ep_table_row > .ep_multi_help { grid-area: help; display: block; width: auto; padding: 0; border: 0; }
body.ka .ep_search_fields > .ep_table_row:has(.ep_option_list), body.ka .ep_search_fields > .ep_table_row:has(select[multiple]) { grid-column: 1 / -1; }
body.ka .ep_search_fields .ep_multi_input > input.ep_form_text { flex: 1 1 220px; width: auto; }
body.ka .ep_search_fields .ep_multi_input > .ts-wrapper:not(.multi) { flex: 0 0 170px; }
/* A select that stands alone in its row (sort order, match mode, yes/no) gets a comfortable width. */
body.ka .ep_search_fields .ep_multi_input:not(:has(input.ep_form_text)) > .ts-wrapper:not(.multi) { flex: 0 1 300px; }
/* Tom Select keeps the original <select> for form submission; take it out of the flex flow. */
body.ka .ep_multi_input > select.ts-hidden-accessible, body.ka select.ts-hidden-accessible { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden; clip: rect(0 0 0 0); }
/* Empty spacer cells from EPrints core (dashed borders). */
body.ka .ep_search_fields .ep_table_row > .ep_table_cell:not(.ep_multi_heading):not(.ep_multi_input):not(.ep_multi_help) { display: none; }
body.ka .ep_search_fields .ep_multi_input > .ts-wrapper.multi { flex: 1 1 100%; }
body.ka .ep_search_fields .ep_form_example { font: 500 12px/1.5 var(--a-sans); color: var(--a-text-secondary); flex-basis: 100%; }
/* Field help: EPrints toggles .ep_multi_inline_help inside the input cell; show it as a full-width note under the inputs. */
body.ka .ep_sr_show_help a, body.ka .ep_sr_hide_help a {
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%;
  background: var(--a-surface-subtle); color: var(--a-text-secondary); text-decoration: none;
  transition: background-color var(--a-dur-fast) ease, color var(--a-dur-fast) ease, transform 120ms var(--a-ease-out);
}
body.ka .ep_sr_show_help a img, body.ka .ep_sr_hide_help a img { display: none; }
body.ka .ep_sr_show_help a::before { content: "?"; font: 700 13px/1 var(--a-sans); }
body.ka .ep_sr_hide_help a::before { content: "×"; font: 600 16px/1 var(--a-sans); }
body.ka .ep_sr_hide_help a { background: var(--a-brand-primary); color: #fff; }
body.ka .ep_sr_show_help a:hover { background: var(--a-border); color: var(--a-text-primary); }
body.ka .ep_sr_show_help a:active, body.ka .ep_sr_hide_help a:active { transform: scale(0.94); }
body.ka .ep_multi_input > .ep_multi_inline_help {
  order: 10; flex: 1 1 100%; box-sizing: border-box; margin: 0; padding: 10px 12px;
  border-left: 3px solid var(--a-brand-accent); border-radius: 0 var(--a-radius-sm) var(--a-radius-sm) 0;
  background: var(--a-surface-page); font: 400 13px/1.55 var(--a-sans); color: var(--a-text-secondary);
  animation: ka-help-in 180ms var(--a-ease-out);
}
@keyframes ka-help-in { from { opacity: 0; transform: translateY(-4px); } }
body.ka .ep_sr_help { font: 400 13px/1.5 var(--a-sans); color: var(--a-text-secondary); }

/* Option lists (item type, status…): a tidy grid of selectable chips. */
body.ka .ep_option_list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; width: 100%; }
body.ka .ep_option_list_row, body.ka .ep_option_list_cell { display: contents; }
body.ka .ep_option_list_option {
  display: flex; margin: 0; padding: 0; border: 1px solid var(--a-border); border-radius: var(--a-radius-md);
  background: var(--a-surface-card); font: 500 14px/1.3 var(--a-sans); color: var(--a-text-primary); cursor: pointer;
  transition: background-color var(--a-dur-fast) ease, border-color var(--a-dur-fast) ease;
}
body.ka .ep_option_list_option label { flex: 1; display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; }
body.ka .ep_option_list_option input { flex-shrink: 0; }
body.ka .ep_option_list_option:has(input:checked) { border-color: var(--a-brand-primary); background: var(--a-surface-subtle); }
body.ka .ep_option_list_option:has(input:focus-visible) { outline: 2px solid var(--a-brand-accent); outline-offset: 2px; }
body.ka .ep_option_list_option input:focus-visible { outline: none; }
@media (hover: hover) and (pointer: fine) {
  body.ka .ep_option_list_option:hover { border-color: var(--a-text-secondary); }
}
body.ka input[type="checkbox"], body.ka input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--a-brand-primary); }
body.ka .ep_search_buttons, body.ka .ep_form_button_bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
body.ka .ep_search_buttons input[name="_action_newsearch"], body.ka .ep_search_buttons input[name="_action_reset"] {
  background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border);
}
body.ka .ep_search_buttons input[name="_action_newsearch"]:hover { background: var(--a-surface-subtle); }
body.ka .ep_field_legend { display: block; margin-bottom: 8px; font: 600 14px/1.4 var(--a-sans); }
body.ka .ep_search_fields ~ div, body.ka .ep_search_fields ~ fieldset { border-color: var(--a-border); }
body.ka .ep_tm_page_content > .ka-callout { margin-bottom: 24px; }
/* The preamble sits beside the form on wide screens, like "Tips pencarian" in the design. */
@media (min-width: 1101px) {
  body.ka .ep_tm_page_content:has(> .ka-callout + form .ep_search_fields) { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; }
  body.ka .ep_tm_page_content:has(> .ka-callout + form .ep_search_fields) > .ka-callout { grid-column: 2; grid-row: 1; margin: 0; position: sticky; top: 24px; }
  body.ka .ep_tm_page_content:has(> .ka-callout + form .ep_search_fields) > form { grid-column: 1; grid-row: 1; }
}
body.ka input.ep_form_text:focus, body.ka input[type="text"]:focus, body.ka input[type="search"]:focus, body.ka input[type="password"]:focus, body.ka input[type="email"]:focus, body.ka textarea:focus {
  outline: none; border-color: var(--a-brand-primary); box-shadow: 0 0 0 3px rgba(10, 46, 92, .12);
}
/* Inputs that live inside a bordered control (hero search, Tom Select) never draw their own box:
   the container owns the single border and focus ring. */
body.ka .ka-search input[type="text"], body.ka .ka-search input[type="text"]:focus,
body.ka .ts-wrapper .ts-control input, body.ka .ts-wrapper .ts-control input:focus {
  min-height: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; outline: none;
}
body.ka fieldset.ep_option_list { margin: 0; padding: 0; border: 0; min-width: 0; }
body.ka .ep_option_list > legend.ep_field_legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Labels: no trailing colon (EPrints adds one via ::after); required fields get a red asterisk instead of the icon. */
body.ka .ep_multi_heading::after, body.ka .ep_field_legend::after { content: none; }
body.ka img.ep_required { display: none; }
body.ka .ep_multi_heading:has(img.ep_required)::after { content: " *"; color: #b91c1c; font-weight: 700; }

/* ---------- Login & register ---------- */
body.ka:has(.ka-auth) .ka-pagehead,
body.ka:has(form[action$="/cgi/register"]) .ka-pagehead { display: none; }
body.ka:has(.ka-auth) main, body.ka:has(form[action$="/cgi/register"]) main { background: var(--a-surface-subtle); }
body.ka:has(.ka-auth) .ep_tm_page_content, body.ka:has(form[action$="/cgi/register"]) .ep_tm_page_content { padding-top: 56px; padding-bottom: 72px; }
.ka-auth { display: flex; justify-content: center; }
.ka-auth__card { display: flex; flex-direction: column; gap: 16px; width: 100%; max-width: 440px; padding: 32px; box-shadow: 0 12px 32px rgba(6, 29, 59, .06); }
.ka-auth__brand { display: flex; align-items: center; gap: 12px; }
.ka-auth__brand .ka-logo__name { font-size: 16px; }
body.ka .ka-auth__title { margin: 0; font: 800 28px/1.2 var(--a-sans); letter-spacing: -0.01em; color: var(--a-text-primary); }
.ka-auth__card > .ka-body, .ka-auth__head .ka-body { margin: -8px 0 0; }
/* Auth form: label above a full-width input, 16px rhythm. Overrides EPrints' table layout for .ep_login_form_table. */
body.ka .ka-auth .ep_login_form_table { display: flex; flex-direction: column; gap: 16px; width: 100%; margin: 4px 0 0; }
body.ka .ka-auth .ep_login_form_table > div { display: flex; flex-direction: column; gap: 6px; }
body.ka .ka-auth .ep_login_form_table > div > div, body.ka .ka-auth .ep_login_form_table > div > label { display: block; padding: 0; }
body.ka .ka-auth .ep_login_form_table > div > .ka-field__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ka-field label { font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); }
body.ka .ka-auth__reset a { font: 600 13px/1.4 var(--a-sans); text-decoration: none; white-space: nowrap; }
body.ka .ka-auth__reset a:hover { text-decoration: underline; }
body.ka .ka-auth .ka-field input { box-sizing: border-box; width: 100%; height: 48px; padding: 0 14px; font-size: 15px; }
body.ka .ka-auth .ka-auth__submit { margin-top: 4px; }
body.ka .ka-auth .ka-auth__submit input, body.ka .ka-auth .ka-auth__submit button { width: 100%; height: 48px; font-size: 15px; }
body.ka .ka-auth .ep_msg_error, body.ka .ka-auth .ep_msg_warning { margin: 0; }
.ka-auth__switch { margin: 0; text-align: center; font: 500 14px/1.5 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ka-auth__switch a { font-weight: 600; text-decoration: none; }

/* Register: theme.js moves the intro into the form, so the form is a single card.
   Fields: Nama lengkap (gelar / depan / belakang) and email full width; nama pengguna + kata sandi side by side. */
body.ka:has(form[action$="/cgi/register"]) .ep_tm_page_content > * { max-width: 680px; margin-left: auto; margin-right: auto; }
body.ka form[action$="/cgi/register"] {
  display: flex; flex-direction: column; gap: 24px; padding: 36px 40px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg);
  background: var(--a-surface-card); box-shadow: 0 12px 32px rgba(6, 29, 59, .06);
}
body.ka form[action$="/cgi/register"] .ka-auth__head { display: flex; flex-direction: column; gap: 10px; padding: 0; border: 0; background: none; }
.ka-auth__head p { margin: 0; font: 400 14px/1.6 var(--a-sans); color: var(--a-text-secondary); }
body.ka form[action$="/cgi/register"] .ka-auth__head a { font-weight: 600; }
body.ka form[action$="/cgi/register"] .ep_form_field_input,
body.ka form[action$="/cgi/register"] .ep_form_field_input > div { display: block; margin: 0; padding: 0; border: 0; background: none; }
body.ka form[action$="/cgi/register"] .ep_multi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; width: 100%; border: 0; }
body.ka form[action$="/cgi/register"] .ep_multi > .ep_table_row { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; }
body.ka form[action$="/cgi/register"] .ep_multi > .ep_table_row:nth-child(-n+2) { grid-column: 1 / -1; }
body.ka form[action$="/cgi/register"] .ep_table_cell { display: block; width: auto; padding: 0; border: 0; text-align: left; }
body.ka form[action$="/cgi/register"] .ep_table_cell:empty, body.ka form[action$="/cgi/register"] .ep_table_cell:not(:has(*)) { display: none; }
body.ka form[action$="/cgi/register"] .ep_multi_heading { font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); }
body.ka form[action$="/cgi/register"] .ep_form_input_grid { display: block; width: 100%; }
body.ka form[action$="/cgi/register"] .ep_form_input_grid > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
/* The name field: one row of three headings above one row of three inputs. */
body.ka form[action$="/cgi/register"] .ep_form_input_grid:has(.heading) { display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(0, 1fr); gap: 4px 8px; }
body.ka form[action$="/cgi/register"] .ep_form_input_grid:has(.heading) > div { display: contents; }
body.ka form[action$="/cgi/register"] .ep_form_input_grid .heading { font: 500 12px/1.5 var(--a-sans); color: var(--a-text-secondary); text-align: left; }
body.ka form[action$="/cgi/register"] input.ep_form_text { box-sizing: border-box; width: 100% !important; height: 46px; padding: 0 14px; }
body.ka form[action$="/cgi/register"] .ep_form_button_bar, body.ka form[action$="/cgi/register"] > div:last-child { margin: 0; padding: 0; border: 0; }
body.ka form[action$="/cgi/register"] input[type="submit"] { width: 100%; height: 48px; font-size: 15px; }
body.ka form[action$="/cgi/register"] #ep_messages:empty { display: none; }

/* ---------- About ---------- */
.ka-about { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.ka-about__main { display: flex; flex-direction: column; gap: 16px; }
.ka-about__side { display: flex; flex-direction: column; gap: 16px; }
.ka-contact { display: flex; flex-direction: column; gap: 12px; padding: 20px; }
.ka-contact__row { display: flex; gap: 10px; margin: 0; font: 400 14px/1.5 var(--a-sans); color: var(--a-text-secondary); }
.ka-contact__row img { flex-shrink: 0; margin-top: 2px; }
.ka-contact__row a { word-break: break-all; }

/* ---------- Prose & policies ---------- */
.ka-prose { padding: 32px; }
body.ka .ka-prose h2 { margin: 0 0 12px; font: 700 22px/1.3 var(--a-sans); scroll-margin-top: 24px; }
body.ka .ka-prose h2 + p { margin-top: 0; }
body.ka .ka-prose h2:not(:first-child) { margin-top: 28px; }
body.ka .ka-prose h3 { margin: 24px 0 8px; font: 600 18px/1.4 var(--a-sans); }
body.ka .ka-prose p, body.ka .ka-prose li { font: 400 15px/1.7 var(--a-sans); color: var(--a-text-primary); }
.ka-typelist { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ka-typelist li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0 10px 18px; border-bottom: 1px solid var(--a-border); position: relative; }
.ka-typelist li::before { content: ""; position: absolute; left: 0; top: 18px; width: 6px; height: 6px; border-radius: 50%; background: var(--a-brand-accent); }
body.ka .ka-typelist a { text-decoration: none; font-weight: 600; }

.ka-doc-layout.has-toc { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.ka-toc { position: sticky; top: 24px; padding: 16px; }
.ka-toc::before { content: "DAFTAR ISI"; display: block; margin: 0 0 8px 8px; font: 700 11px/1.4 var(--a-sans); letter-spacing: .08em; color: var(--a-text-secondary); }
.ka-toc ol { margin: 0; padding: 0; list-style: none; }
body.ka .ka-toc a { display: block; padding: 8px; border-radius: var(--a-radius-sm); font: 500 14px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none; transition: background-color var(--a-dur-fast) ease, color var(--a-dur-fast) ease; }
body.ka .ka-toc a:hover { background: var(--a-surface-page); }
body.ka .ka-toc a.is-active { background: var(--a-surface-subtle); color: var(--a-brand-primary); font-weight: 600; }
.ka-doc-layout > .ka-emptystate { max-width: 720px; margin: 0 auto; }

/* Help, accessibility and other EPrints static pages get the prose look. */
body.ka .ep_tm_page_content > h2:first-child, body.ka .ep_tm_page_content > p:first-child { margin-top: 0; }

/* ---------- Tom Select (searchable selects) ---------- */
body.ka .ts-wrapper { min-width: 160px; }
body.ka .ts-wrapper .ts-control {
  min-height: 44px; padding: 10px 36px 10px 12px; border: 1px solid var(--a-border); border-radius: var(--a-radius-md);
  background: var(--a-surface-card); box-shadow: none; font: 400 14px/1.5 var(--a-sans); color: var(--a-text-primary);
  transition: border-color var(--a-dur-fast) ease, box-shadow var(--a-dur-fast) ease;
}
body.ka .ts-wrapper.single .ts-control { background-image: url(../../images/kemenhub/chevron-down.svg); background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; }
body.ka .ts-wrapper.single .ts-control::after { display: none; }
body.ka .ts-wrapper.single.dropdown-active .ts-control { background-image: url(../../images/kemenhub/chevron-down.svg); }
body.ka .ts-wrapper.focus .ts-control { border-color: var(--a-brand-primary); box-shadow: 0 0 0 3px rgba(10, 46, 92, .12); }
body.ka .ts-wrapper .ts-control input { font: inherit; color: inherit; }
body.ka .ts-wrapper.multi .ts-control > .item { padding: 2px 4px 2px 10px; border: 0; border-radius: 999px; background: var(--a-surface-subtle); color: var(--a-brand-primary); font-weight: 600; }
body.ka .ts-wrapper.plugin-remove_button .item .remove { border-left: 0; padding: 0 6px; border-radius: 0 999px 999px 0; }
body.ka .ts-dropdown {
  margin-top: 6px; border: 1px solid var(--a-border); border-radius: var(--a-radius-md); background: var(--a-surface-card);
  box-shadow: 0 12px 32px rgba(6, 29, 59, .12); font: 400 14px/1.5 var(--a-sans); color: var(--a-text-primary); overflow: hidden;
  transform-origin: top center; animation: ka-dropdown-in 160ms var(--a-ease-out);
}
@keyframes ka-dropdown-in { from { opacity: 0; transform: translateY(-4px) scale(0.98); } }
body.ka .ts-dropdown .option { padding: 9px 12px; }
body.ka .ts-dropdown .active { background: var(--a-surface-subtle); color: var(--a-brand-primary); }
body.ka .ts-dropdown .selected { font-weight: 600; }
body.ka .ts-dropdown .dropdown-input-wrap { padding: 8px; border-bottom: 1px solid var(--a-border); }
body.ka .ts-dropdown .dropdown-input { width: 100%; padding: 8px 10px; border: 1px solid var(--a-border); border-radius: var(--a-radius-sm); }
body.ka .ts-dropdown .no-results { padding: 12px; color: var(--a-text-secondary); }
body.ka .ts-dropdown .option input[type="checkbox"] { margin-right: 8px; vertical-align: -3px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  body.ka .ep_tm_page_content:has(> .ka-follow) { grid-template-columns: minmax(0, 1fr); }
  body.ka .ep_tm_page_content > .ka-follow { grid-column: 1; grid-row: auto; position: static; margin-bottom: 24px; }
  .ka-about { grid-template-columns: minmax(0, 1fr); }
  .ka-doc-layout.has-toc { grid-template-columns: minmax(0, 1fr); }
  .ka-toc { position: static; }
}
@media (max-width: 760px) {
  body.ka .ep_search_fields { grid-template-columns: minmax(0, 1fr); }
  body.ka:has(.ep_search_fields) .ep_tm_page_content > form, body.ka .ep_tm_page_content > form:has(.ep_search_fields) { padding: 20px; }
  body.ka .ep_search_fields .ep_multi_input > .ts-wrapper:not(.multi) { flex-basis: 100%; }
  .ka-auth__card, body.ka form[action$="/cgi/register"] { padding: 24px 20px; }
  body.ka form[action$="/cgi/register"] .ep_multi { grid-template-columns: minmax(0, 1fr); }
  body.ka form[action$="/cgi/register"] .ep_form_input_grid:has(.heading) { grid-template-columns: 72px minmax(0, 1fr) minmax(0, 1fr); }
  .ka-prose { padding: 20px; }
}
@media (max-width: 640px) {
  /* Keep the stacked-table rules from the main sheet from flattening the new grids. */
  body.ka .ep_search_fields { display: grid; }
  body.ka .ep_search_fields > .ep_table_row { display: grid; padding: 0; border: 0; }
}

@media (hover: hover) and (pointer: fine) {
  body.ka .ka-viewcard:hover { transform: translateY(-2px); border-color: var(--a-brand-primary); box-shadow: 0 8px 24px rgba(10, 46, 92, .10); }
}
@media (prefers-reduced-motion: reduce) {
  .ka-skeleton { animation: none; }
  body.ka .ts-dropdown { animation-name: ka-fade-in; }
  body.ka .ka-viewcard:hover { transform: none; }
}

/* Adjacent EPrints buttons (search/reset, save/cancel…) keep an 8px gap now that core margins are removed. */
body.ka input.ep_form_action_button + input.ep_form_action_button,
body.ka input.ep_form_action_button + input.ep_form_internal_button,
body.ka button.ep_form_action_button + button.ep_form_action_button { margin-left: 8px; }

/* Long repository names (archive_name) must never push the menu button off-screen. */
@media (max-width: 1024px) {
  body.ka .ka-header__inner { gap: 12px; }
  body.ka .ka-header .ka-logo { flex: 1 1 auto; min-width: 0; }
  body.ka .ka-header .ka-logo__word { min-width: 0; white-space: normal; }
  body.ka .ka-header .ka-logo__name {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    font-size: 15px; line-height: 1.3;
  }
  body.ka .ka-header .ka-logo__over { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

@media (max-width: 860px) {
  body.ka .ka-pagehead__inner { flex-direction: column; align-items: stretch; gap: 20px; }
  body.ka .ka-quicksearch { flex: 1 1 auto; width: 100%; }
}
/* Brand lockup inside the auth card wraps instead of overflowing. */
body.ka .ka-auth__brand { min-width: 0; }
body.ka .ka-auth__brand .ka-logo__word { min-width: 0; white-space: normal; }
body.ka .ka-auth__brand .ka-logo__mark { flex-shrink: 0; }

/* ---------- Simple search form (/cgi/search/simple) ----------
   One large search field, primary button, "Pencarian lanjutan" as a quiet link underneath. */
body.ka .ep_block:has(> form[action$="/cgi/search/simple"]) { max-width: 760px; margin: 16px auto 0; padding: 0; border: 0; background: none; }
body.ka form[action$="/cgi/search/simple"]:has(input[name="q"]) {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 12px;
}
body.ka form[action$="/cgi/search/simple"] input[name="q"] {
  box-sizing: border-box; width: 100%; height: 56px; padding: 0 16px 0 48px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg);
  background: var(--a-surface-card) url(../../images/kemenhub/search.svg) 16px center / 20px no-repeat;
  font: 400 16px/1.5 var(--a-sans); box-shadow: 0 8px 24px rgba(6, 29, 59, .06);
}
body.ka form[action$="/cgi/search/simple"] input[name="q"]:focus { border-color: var(--a-brand-accent); box-shadow: 0 0 0 3px rgba(242, 183, 5, .35); }
body.ka form[action$="/cgi/search/simple"] input[name="_action_search"] { height: 56px; padding: 0 28px; font-size: 15px; }
body.ka form[action$="/cgi/search/simple"] input.ep_form_search_advanced_link {
  grid-column: 1 / -1; justify-self: center; height: auto; margin: 4px 0 0; padding: 6px 10px; border: 0;
  background: none; color: var(--a-brand-primary) !important; font: 600 14px/1.4 var(--a-sans);
}
body.ka form[action$="/cgi/search/simple"] input.ep_form_search_advanced_link:hover { background: none; text-decoration: underline; }
body.ka form[action$="/cgi/search/simple"] br { display: none; }
@media (max-width: 640px) {
  body.ka form[action$="/cgi/search/simple"]:has(input[name="q"]) { grid-template-columns: minmax(0, 1fr); }
  body.ka form[action$="/cgi/search/simple"] input[name="_action_search"] { width: 100%; }
}

/* The page-head quick search is redundant on search screens, which have their own search form. */
body.ka:has(.ep_search_controls) .ka-quicksearch,
body.ka:has(form[action$="/cgi/search/simple"] input[name="q"]) .ka-quicksearch,
body.ka:has(.ep_search_fields) .ka-quicksearch { display: none; }

/* ---------- EPrints messages (#ep_messages: success, warning, error, info) ----------
   Used across public pages, the user area and admin screens. */
body.ka .ep_msg_message, body.ka .ep_msg_warning, body.ka .ep_msg_error, body.ka .ep_msg_other {
  margin: 0 0 16px; padding: 0; border: 1px solid; border-radius: var(--a-radius-lg); box-shadow: none; background-image: none;
  animation: ka-help-in 200ms var(--a-ease-out);
}
body.ka .ep_msg_message_content, body.ka .ep_msg_warning_content, body.ka .ep_msg_error_content, body.ka .ep_msg_other_content {
  display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: none;
}
body.ka .ep_msg_message_icon, body.ka .ep_msg_warning_icon, body.ka .ep_msg_error_icon, body.ka .ep_msg_other_icon {
  flex: 0 0 20px; width: 20px !important; height: 20px; margin-top: 1px; padding: 0; background: center / 20px no-repeat;
}
body.ka .ep_msg_message_icon img, body.ka .ep_msg_warning_icon img, body.ka .ep_msg_error_icon img, body.ka .ep_msg_other_icon img { display: none; }
body.ka .ep_msg_message_text, body.ka .ep_msg_warning_text, body.ka .ep_msg_error_text, body.ka .ep_msg_other_text {
  flex: 1; min-width: 0; padding: 0; font: 500 14px/1.55 var(--a-sans); color: var(--a-text-primary);
}
body.ka [class$="_text"] > p:first-child { margin-top: 0; }
body.ka [class$="_text"] > p:last-child { margin-bottom: 0; }
body.ka .ep_msg_message { border-color: #bbf7d0; background: #f0fdf4; }
body.ka .ep_msg_message_icon { background-image: url(../../images/kemenhub/status-success.svg); }
body.ka .ep_msg_warning { border-color: #fde68a; background: #fffbeb; }
body.ka .ep_msg_warning_icon { background-image: url(../../images/kemenhub/status-warning.svg); }
body.ka .ep_msg_error { border-color: #fecaca; background: #fef2f2; }
body.ka .ep_msg_error_icon { background-image: url(../../images/kemenhub/status-error.svg); }
body.ka .ep_msg_other { border-color: var(--a-border); background: var(--a-surface-subtle); }
body.ka .ep_msg_other_icon { background-image: url(../../images/kemenhub/status-info.svg); }
body.ka #ep_messages:empty { display: none; }

/* Advanced search: one set of actions, at the end of the form (EPrints also prints a copy above the fields). */
body.ka .ep_search_buttons:has(~ .ep_search_fields) { display: none; }

/* ---------- Account menu (logged in) ---------- */
body.ka .ka-tools.is-logged-in { position: relative; }
.ka-account { position: relative; }
body.ka .ka-account__toggle {
  display: inline-flex; align-items: center; gap: 10px; height: 48px; max-width: 240px; padding: 0 12px 0 6px;
  border: 1px solid var(--a-border); border-radius: 999px; background: var(--a-surface-card); cursor: pointer;
  font: 600 14px/1 var(--a-sans); color: var(--a-text-primary);
  transition: background-color var(--a-dur-fast) ease, border-color var(--a-dur-fast) ease;
}
body.ka .ka-account__toggle::after {
  content: ""; flex-shrink: 0; width: 16px; height: 16px; background: url(../../images/kemenhub/chevron-down.svg) center / 16px no-repeat;
  transition: transform var(--a-dur) var(--a-ease-out);
}
body.ka .ka-account.is-open .ka-account__toggle::after { transform: rotate(180deg); }
body.ka .ka-account__toggle:hover { background: var(--a-surface-page); }
.ka-account__avatar {
  display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  background: var(--a-brand-primary); color: #fff; font: 700 14px/1 var(--a-sans);
}
.ka-account__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ka .ka-account__panel {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; width: 280px; padding: 8px;
  border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); box-shadow: 0 16px 40px rgba(6, 29, 59, .14);
  visibility: hidden; opacity: 0; transform: translateY(-6px) scale(0.98); transform-origin: top right; pointer-events: none;
  transition: opacity var(--a-dur) var(--a-ease-out), transform var(--a-dur) var(--a-ease-out), visibility 0s linear var(--a-dur);
}
body.ka .ka-account.is-open .ka-account__panel {
  visibility: visible; opacity: 1; transform: none; pointer-events: auto;
  transition: opacity var(--a-dur) var(--a-ease-out), transform var(--a-dur) var(--a-ease-out), visibility 0s;
}
.ka-account__head { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; margin-bottom: 6px; border-bottom: 1px solid var(--a-border); }
body.ka .ka-account__head .ep_name_citation, body.ka .ka-account__head .ep_name_citation a {
  font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none; overflow-wrap: anywhere;
}
body.ka .ka-account__panel ul.ep_tm_key_tools { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
body.ka .ka-account__panel li { flex: none; margin: 0; padding: 0; }
body.ka .ka-tools .ka-account__panel a, body.ka .ka-tools .ka-account__panel li + li a {
  display: block; width: auto; height: auto; padding: 10px 12px; border: 0; border-radius: var(--a-radius-md);
  background: none; font: 500 14px/1.4 var(--a-sans); color: var(--a-text-primary) !important; text-align: left; white-space: normal;
}
body.ka .ka-tools .ka-account__panel a:hover { background: var(--a-surface-page); }
body.ka .ka-account__panel .ka-account__logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--a-border); }
body.ka .ka-tools .ka-account__panel .ka-account__logout a { color: #b91c1c !important; }

@media (max-width: 1024px) {
  /* Inside the mobile menu the account list is shown in place. */
  body.ka .ka-account__toggle { width: 100%; max-width: none; pointer-events: none; border-radius: var(--a-radius-md); }
  body.ka .ka-account__toggle::after { display: none; }
  body.ka .ka-account__panel, body.ka .ka-account.is-open .ka-account__panel {
    position: static; width: auto; margin-top: 8px; padding: 4px 0 0; border: 0; box-shadow: none;
    visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition: none;
  }
  body.ka .ka-account__head { display: none; }
  body.ka .ka-tools.is-logged-in, body.ka .ka-tools.is-logged-in ul { flex: none; }
  body.ka .ka-tools.is-logged-in li { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.ka .ka-account__panel { transform: none; }
}

/* ---------- User area / admin workspace (default_internal template) ----------
   Sidebar: account card, then the EPrints key tools as a vertical menu; content on the right. */
body.ka-internal .ka-pagehead .ka-container { padding-top: 32px; padding-bottom: 32px; }
body.ka-internal h1.ep_tm_pagetitle { font-size: 30px; }
body.ka .ka-workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; align-items: start; padding-top: 32px; padding-bottom: 64px; }
body.ka .ka-workspace > .ep_tm_page_content { width: auto; max-width: none; margin: 0; padding: 0; min-width: 0; }
.ka-sidebar { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); }
.ka-sidebar__account { display: flex; align-items: center; gap: 12px; padding: 8px 8px 14px; margin-bottom: 4px; border-bottom: 1px solid var(--a-border); }
.ka-sidebar__who { display: flex; flex-direction: column; min-width: 0; }
.ka-sidebar__name { font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ka .ka-sidebar ul.ep_tm_key_tools { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
body.ka .ka-sidebar li { margin: 0; padding: 0; border: 0; background: none; }
body.ka .ka-sidebar li::before { content: none !important; }
body.ka .ka-sidebar ul.ep_tm_key_tools a {
  display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--a-radius-md);
  font: 500 14px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none;
  transition: background-color var(--a-dur-fast) ease, color var(--a-dur-fast) ease;
}
body.ka .ka-sidebar ul.ep_tm_key_tools a:hover { background: var(--a-surface-page); }
body.ka .ka-sidebar ul.ep_tm_key_tools a.is-active { background: var(--a-surface-subtle); color: var(--a-brand-primary); font-weight: 600; }
.ka-sidebar__icon { flex: 0 0 18px; width: 18px; height: 18px; background: center / 18px no-repeat; opacity: .8; }
body.ka .ka-sidebar a.is-active .ka-sidebar__icon { opacity: 1; }
body.ka .ka-sidebar .ka-sidebar__logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--a-border); }
body.ka .ka-sidebar .ka-sidebar__logout a { color: #b91c1c; }

@media (max-width: 960px) {
  body.ka .ka-workspace { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 20px; }
  .ka-sidebar { position: static; }
  body.ka .ka-sidebar ul.ep_tm_key_tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.ka .ka-sidebar .ka-sidebar__logout { grid-column: 1 / -1; }
}

/* ---------- User area: item lists (Setoran Saya, Tinjauan, Kelola data) ---------- */
/* Help box (collapsible summary box) */
body.ka .ep_summary_box { margin: 0 0 20px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); overflow: hidden; }
body.ka .ep_summary_box_title { padding: 0; border: 0; background: none; }
body.ka .ep_summary_box_title a.ep_box_collapse_link {
  display: flex; align-items: center; gap: 8px; padding: 12px 16px; font: 600 14px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none;
}
body.ka .ep_summary_box_title a.ep_box_collapse_link img { width: 14px; height: 14px; opacity: .6; }
body.ka .ep_summary_box_body { padding: 4px 16px 16px; border: 0; font: 400 14px/1.6 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ep_icontable > div { display: flex; align-items: center; gap: 10px; padding: 4px 0; }

/* Action bar: Item baru (left) · Impor dari [format] [Impor] (right) */
.ka-actionbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 16px;
  padding: 12px 16px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card);
}
body.ka .ka-actionbar .ep_block { margin: 0; padding: 0; border: 0; background: none; }
body.ka .ka-actionbar ul.ep_action_list { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.ka .ka-actionbar ul.ep_action_list li { margin: 0; padding: 0; }
body.ka .ka-actionbar ul.ep_action_list form { margin: 0; }
body.ka .ka-actionbar > form { margin: 0; }
body.ka .ep_import_bar, body.ka .ep_import_bar > div, body.ka .ep_import_bar > div > div { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; border: 0; background: none; }
body.ka .ep_import_bar > div:empty, body.ka .ep_import_bar > div:not(:has(*)) { display: none; }
body.ka .ep_import_bar label { display: flex; align-items: center; gap: 8px; font: 600 13px/1.4 var(--a-sans); color: var(--a-text-secondary); white-space: nowrap; }
body.ka .ep_import_bar .ts-wrapper { width: 200px; }
body.ka .ep_import_bar .ts-wrapper .ts-control { min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
body.ka .ep_import_bar input.ep_form_action_button { height: 40px; padding: 0 16px; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border); }
body.ka .ep_import_bar input.ep_form_action_button:hover { background: var(--a-surface-subtle); }

/* Status filters as toggle chips */
body.ka .ep_items_filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; text-align: left; }
body.ka .ep_items_filters a.ka-filter {
  display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border: 1px solid var(--a-border); border-radius: 999px;
  background: var(--a-surface-card); font: 600 13px/1 var(--a-sans); color: var(--a-text-secondary); text-decoration: none;
  transition: background-color var(--a-dur-fast) ease, border-color var(--a-dur-fast) ease, color var(--a-dur-fast) ease;
}
body.ka .ep_items_filters a.ka-filter img { display: none; }
body.ka .ep_items_filters a.ka-filter::before {
  content: ""; width: 14px; height: 14px; border: 1.5px solid currentColor; border-radius: 4px; box-sizing: border-box;
  background: center / 10px no-repeat;
}
body.ka .ep_items_filters a.ka-filter.is-on { border-color: var(--a-brand-primary); background: var(--a-surface-subtle); color: var(--a-brand-primary); }
body.ka .ep_items_filters a.ka-filter.is-on::before {
  border-color: var(--a-brand-primary); background-color: var(--a-brand-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22white%22 stroke-width=%224%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 6 9 17l-5-5%22/%3E%3C/svg%3E");
}

/* Item table */
body.ka .ep_search_results:has(table.ep_columns) { overflow-x: auto; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); }
body.ka table.ep_columns { width: 100%; margin: 0; border: 0; border-collapse: collapse; font: 400 14px/1.5 var(--a-sans); }
body.ka table.ep_columns th.ep_columns_title {
  padding: 12px 14px; border: 0; border-bottom: 1px solid var(--a-border); background: var(--a-surface-page);
  font: 600 12px/1.4 var(--a-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--a-text-secondary); text-align: left; white-space: nowrap;
}
body.ka table.ep_columns th.ep_columns_title a { color: inherit; text-decoration: none; }
body.ka table.ep_columns th.ep_columns_title img { vertical-align: middle; margin-left: 4px; }
body.ka table.ep_columns td.ep_columns_cell { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--a-border); background: none; vertical-align: middle; color: var(--a-text-primary); }
body.ka table.ep_columns tr:hover td.ep_columns_cell { background: var(--a-surface-page); }
body.ka table.ep_columns td.ep_columns_cell_title { font-weight: 600; }
body.ka table.ep_columns td.ep_columns_cell_last { white-space: nowrap; text-align: right; }
/* Column controls row (remove / move column) */
body.ka table.ep_columns td.ep_columns_alter { padding: 6px 14px; border: 0; background: var(--a-surface-page); text-align: left; }
body.ka table.ep_columns td.ep_columns_alter img, body.ka table.ep_columns td.ep_columns_alter input[type="image"] { opacity: .45; transition: opacity var(--a-dur-fast) ease; }
body.ka table.ep_columns td.ep_columns_alter img:hover, body.ka table.ep_columns td.ep_columns_alter input[type="image"]:hover { opacity: 1; }

/* Row action buttons */
body.ka .ka-rowaction {
  display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-left: 4px; border-radius: var(--a-radius-md);
  background: var(--ka-icon) center / 18px no-repeat; vertical-align: middle; transition: background-color var(--a-dur-fast) ease, transform 120ms var(--a-ease-out);
}
body.ka .ka-rowaction img, body.ka input.ka-rowaction { opacity: 0; }
body.ka .ka-rowaction:hover { background-color: var(--a-surface-subtle); }
body.ka .ka-rowaction--remove:hover { background-color: #fef2f2; }
body.ka .ka-rowaction:active { transform: scale(0.94); }
body.ka .ka-rowaction img { width: 18px; height: 18px; }

/* Status badges */
.ka-status { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font: 600 12px/1.5 var(--a-sans); white-space: nowrap; }
.ka-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ka-status--inbox { background: var(--a-surface-subtle); color: var(--a-brand-primary); }
.ka-status--buffer { background: #fffbeb; color: #b45309; }
.ka-status--archive { background: #f0fdf4; color: #15803d; }
.ka-status--deletion { background: #f3f4f6; color: #4b5563; }

/* Add column + paging under the table */
body.ka .ep_search_results ~ form, body.ka .ep_search_results ~ div:has(select) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }

/* "Tambah kolom" under item tables: label, select and button on one line. */
body.ka .ep_columns_add { margin-top: 12px; }
body.ka .ep_columns_add form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
body.ka .ep_columns_add label { display: flex; align-items: center; gap: 8px; font: 600 13px/1.4 var(--a-sans); color: var(--a-text-secondary); white-space: nowrap; }
body.ka .ep_columns_add .ts-wrapper { width: 220px; }
body.ka .ep_columns_add .ts-wrapper .ts-control { min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
body.ka .ep_columns_add input.ep_form_action_button { height: 40px; padding: 0 16px; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border); }
body.ka .ep_columns_add input.ep_form_action_button:hover { background: var(--a-surface-subtle); }
.ka-sidebar__who { flex: 1; }

/* ---------- Record view (profile, item details in the user area) ---------- */
body.ka .ep_view_details_table { width: 100%; margin: 0 0 20px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); border-collapse: separate; border-spacing: 0; background: var(--a-surface-card); overflow: hidden; }
body.ka .ep_view_details_table th.ep_title_row { padding: 0; border: 0; border-bottom: 1px solid var(--a-border); background: var(--a-surface-page); }
body.ka .ep_title_row_inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: none; font: 600 15px/1.4 var(--a-sans); color: var(--a-text-primary); }
body.ka .ep_title_row_inner input.ep_form_action_button, body.ka .ep_title_row_inner .ep_form_action_button {
  height: 34px; padding: 0 14px; font-size: 13px; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border);
}
body.ka .ep_view_details_table tr.ep_table_row > th, body.ka .ep_view_details_table tr > th:not(.ep_title_row) {
  width: 220px; padding: 10px 16px; border: 0; border-bottom: 1px solid var(--a-border); text-align: left; vertical-align: top;
  font: 500 13px/1.5 var(--a-sans); color: var(--a-text-secondary); background: none;
}
body.ka .ep_view_details_table tr.ep_table_row > td, body.ka .ep_view_details_table tr > td { padding: 10px 16px; border: 0; border-bottom: 1px solid var(--a-border); vertical-align: top; font: 400 14px/1.5 var(--a-sans); }
body.ka .ep_view_details_table tr:last-child > th, body.ka .ep_view_details_table tr:last-child > td { border-bottom: 0; }
body.ka .ep_view_details_table th a { color: inherit; }
body.ka .ep_view_details_table .ep_msg_warning, body.ka .ep_view_details_table .ep_msg_error { margin: 12px 16px; }
/* Record header actions (Edit / Destroy …) */
body.ka .ep_tm_page_content > .ep_block:has(> ul.ep_action_list) { margin: 0 0 16px; padding: 0; border: 0; background: none; text-align: left; }
body.ka .ep_tm_page_content > .ep_block > ul.ep_action_list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.ka .ep_tm_page_content > .ep_block > ul.ep_action_list li { margin: 0; padding: 0; }
body.ka .ep_tm_page_content > .ep_block > ul.ep_action_list form { margin: 0; }
body.ka .ep_tm_page_content > .ep_block:has(> a:only-child) { margin: 0 0 12px; padding: 0; border: 0; background: none; text-align: left; font-size: 13px; }

/* Tabs used across admin screens */
body.ka ul.ep_tab_bar { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--a-border); list-style: none; }
body.ka ul.ep_tab_bar li { margin: 0; padding: 0; border: 0; background: none; }
body.ka ul.ep_tab_bar li a.ep_tab_link { display: block; margin-bottom: -1px; padding: 10px 16px; border: 0; border-bottom: 2px solid transparent; background: none; font: 600 14px/1.4 var(--a-sans); color: var(--a-text-secondary); text-decoration: none; transition: color var(--a-dur-fast) ease, border-color var(--a-dur-fast) ease; }
body.ka ul.ep_tab_bar li a.ep_tab_link:hover { color: var(--a-text-primary); }
body.ka ul.ep_tab_bar li.ep_tab_selected a.ep_tab_link { border-bottom-color: var(--a-brand-primary); color: var(--a-brand-primary); }
body.ka .ep_tab_panel { margin: 0 0 20px; padding: 20px 0 0; border: 0; background: none; }

/* Admin tool lists (button + description rows) */
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) { border-collapse: separate; border-spacing: 0 10px; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td { padding: 0 12px 0 0; vertical-align: middle; color: var(--a-text-secondary); }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td .ep_form_action_button { min-width: 180px; justify-content: center; }
/* EPrints sets tab widths inline (33%/34%); tabs size to their label instead. */
body.ka ul.ep_tab_bar li { float: none; width: auto !important; }
body.ka ul.ep_tab_bar li a.ep_tab_link, body.ka ul.ep_tab_bar li:first-child a.ep_tab_link { margin-left: 0; margin-right: 0; border-radius: 0; text-align: left; }

/* ---------- Deposit / edit workflow ---------- */
/* Stepper */
body.ka .ep_blister_bar.ka-stepper { margin: 0 0 20px; padding: 16px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); overflow-x: auto; }
body.ka .ka-stepper > div { display: flex; align-items: center; gap: 0; min-width: max-content; margin: 0 auto; }
body.ka .ka-stepper .ep_blister_join { flex: 1 1 32px; min-width: 24px; height: 2px; margin: 0 8px; background: var(--a-border); border: 0; }
body.ka .ka-stepper .ka-step.is-done + .ep_blister_join { background: var(--a-brand-primary); }
body.ka .ka-step { display: flex; align-items: center; gap: 8px; }
body.ka .ka-step::before {
  content: attr(data-step); display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--a-border); background: var(--a-surface-card); font: 700 12px/1 var(--a-sans); color: var(--a-text-secondary);
  transition: background-color var(--a-dur) ease, border-color var(--a-dur) ease, color var(--a-dur) ease;
}
body.ka .ka-step.is-done::before { content: "✓"; border-color: var(--a-brand-primary); background: var(--a-brand-primary); color: #fff; }
body.ka .ka-step.is-current::before { border-color: var(--a-brand-primary); background: var(--a-surface-subtle); color: var(--a-brand-primary); }
body.ka .ka-step input.ep_blister_node, body.ka .ka-step input.ep_blister_node_selected {
  height: auto; min-width: 0; max-width: none; margin: 0; padding: 4px 2px; border: 0; border-radius: 0; background: none;
  font: 600 14px/1.3 var(--a-sans); color: var(--a-text-secondary) !important; cursor: pointer; white-space: nowrap; box-shadow: none;
}
body.ka .ka-step input.ep_blister_node:hover { background: none; color: var(--a-text-primary) !important; text-decoration: underline; }
body.ka .ka-step.is-current input { color: var(--a-brand-primary) !important; }
body.ka .ka-step.is-done input { color: var(--a-text-primary) !important; }

/* Action bars (top and bottom of each stage) */
body.ka .ep_form_button_bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 20px; padding: 0; border: 0; background: none; }
body.ka .ep_form_button_bar:not(.ep_form_button_bar_top) { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--a-border); }
body.ka .ep_form_button_bar .ka-btn-role--primary { order: 3; margin-left: auto; }
body.ka .ep_form_button_bar .ka-btn-role--secondary { order: 1; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border); }
body.ka .ep_form_button_bar .ka-btn-role--secondary:hover { background: var(--a-surface-subtle); }
body.ka .ep_form_button_bar .ka-btn-role--quiet { order: 2; background: transparent; color: var(--a-text-secondary) !important; border-color: transparent; }
body.ka .ep_form_button_bar .ka-btn-role--quiet:hover { background: var(--a-surface-page); color: #b91c1c !important; }
body.ka .ep_form_button_bar input + input { margin-left: 0; }

/* Field components (one card per field) */
body.ka .ep_form_field_input { display: flex; flex-direction: column; gap: 16px; border: 0; padding: 0; background: none; }
body.ka .ep_sr_component { margin: 0; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); overflow: hidden; }
body.ka .ep_sr_title_bar { padding: 0; border: 0; border-bottom: 1px solid var(--a-border); background: var(--a-surface-page); }
body.ka .ep_sr_title_bar_inner > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; }
body.ka .ep_sr_title { font: 600 15px/1.4 var(--a-sans); color: var(--a-text-primary); }
body.ka .ep_sr_title:has(img.ep_required)::after { content: " *"; color: #b91c1c; }
body.ka .ep_sr_content { padding: 16px; border: 0; background: none; }
body.ka .ep_sr_content .ep_sr_help { margin-bottom: 12px; padding: 10px 12px; border-left: 3px solid var(--a-brand-accent); border-radius: 0 var(--a-radius-sm) var(--a-radius-sm) 0; background: var(--a-surface-page); font: 400 13px/1.55 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ep_sr_collapse_bar, body.ka .ep_sr_collapse_link { font: 600 14px/1.4 var(--a-sans); }

/* Choice lists (item type, yes/no…) */
body.ka dl[class^="ep_field_set"] { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 0; }
body.ka dl[class^="ep_field_set"] > dt.ka-choice {
  display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid var(--a-border); border-radius: var(--a-radius-md);
  background: var(--a-surface-card); font: 500 14px/1.35 var(--a-sans); color: var(--a-text-primary); cursor: pointer;
  transition: border-color var(--a-dur-fast) ease, background-color var(--a-dur-fast) ease;
}
body.ka dl[class^="ep_field_set"] > dt.ka-choice input { order: -1; flex-shrink: 0; }
body.ka dl[class^="ep_field_set"] > dt.ka-choice:has(input:checked) { border-color: var(--a-brand-primary); background: var(--a-surface-subtle); }
body.ka dl[class^="ep_field_set"] > dt.ka-choice:has(input:focus-visible) { outline: 2px solid var(--a-brand-accent); outline-offset: 2px; }
body.ka dl[class^="ep_field_set"] > dd { margin: 0; }
body.ka dl[class^="ep_field_set"] > dd:empty { display: none; }
@media (hover: hover) and (pointer: fine) {
  body.ka dl[class^="ep_field_set"] > dt.ka-choice:hover { border-color: var(--a-text-secondary); }
}

/* Inputs inside workflow fields fill their cell */
body.ka .ep_sr_content input.ep_form_text, body.ka .ep_sr_content textarea { width: 100%; }
body.ka .ep_sr_content textarea { min-height: 120px; }

@media (max-width: 640px) {
  body.ka .ep_blister_bar.ka-stepper { padding: 12px; }
  body.ka .ka-step input.ep_blister_node, body.ka .ka-step input.ep_blister_node_selected { font-size: 13px; }
  body.ka .ep_form_button_bar .ka-btn-role--primary { margin-left: 0; }
  body.ka .ep_form_button_bar input { flex: 1 1 auto; }
  body.ka dl[class^="ep_field_set"] { grid-template-columns: minmax(0, 1fr); }
}
/* Core CSS renders the blister bar as a shrink-to-fit table and centres button bars. */
body.ka .ep_blister_bar.ka-stepper { display: block; width: auto; }
body.ka .ka-stepper > div > div.ka-step { display: flex; }
body.ka .ka-stepper > div > div.ep_blister_join { display: block; }
body.ka .ep_form_button_bar { text-align: left; }
body.ka .ep_form_button_bar .ka-btn-role--primary { margin-left: auto !important; }
@media (max-width: 640px) {
  body.ka .ep_form_button_bar .ka-btn-role--primary { margin-left: 0 !important; }
}

/* Workflow field inputs: left-aligned and full width (core centres a shrink-to-fit table). */
body.ka .ep_sr_title_bar, body.ka .ep_sr_title_bar_inner { box-shadow: none; background-image: none; }
body.ka .ep_sr_content .ep_form_input_grid { margin: 0; width: 100%; }
body.ka .ep_sr_content .ep_form_input_grid:not(:has(.heading)), body.ka .ep_sr_content .ep_form_input_grid:not(:has(.heading)) > div,
body.ka .ep_sr_content .ep_form_input_grid:not(:has(.heading)) > div > div { display: block; width: 100%; }
body.ka .ep_sr_content textarea.ep_form_text, body.ka .ep_sr_content textarea { box-sizing: border-box; width: 100% !important; max-width: none; }
body.ka .ep_sr_content input.ep_form_text { box-sizing: border-box; width: 100% !important; }
body.ka .ep_sr_content .ep_form_input_grid:has(.heading) { border-spacing: 8px 6px; margin-left: -8px; }
body.ka .ep_sr_content .ep_form_input_grid .heading { text-align: left; font: 600 12px/1.4 var(--a-sans); color: var(--a-text-secondary); }
body.ka .ep_sr_content input[type="image"] { width: 18px; height: 18px; opacity: .55; transition: opacity var(--a-dur-fast) ease; }
body.ka .ep_sr_content input[type="image"]:hover { opacity: 1; }
body.ka .ep_sr_content .ep_form_internal_button { margin-top: 8px; }

/* ---------- Plain-text editor (workflow textareas) ---------- */
.ka-editor {
  border: 1px solid var(--a-border); border-radius: var(--a-radius-md); background: var(--a-surface-card); overflow: hidden;
  transition: border-color var(--a-dur-fast) ease, box-shadow var(--a-dur-fast) ease;
}
.ka-editor.is-focused { border-color: var(--a-brand-primary); box-shadow: 0 0 0 3px rgba(10, 46, 92, .12); }
.ka-editor.is-over { border-color: #b91c1c; }
.ka-editor__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px 6px 12px; border-bottom: 1px solid var(--a-border); background: var(--a-surface-page); }
.ka-editor__mode { font: 600 11px/1.4 var(--a-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--a-text-secondary); }
body.ka .ka-editor__btn {
  height: 28px; padding: 0 10px; border: 1px solid var(--a-border); border-radius: var(--a-radius-sm); background: var(--a-surface-card);
  font: 600 12px/1 var(--a-sans); color: var(--a-text-primary); cursor: pointer; transition: background-color var(--a-dur-fast) ease, transform 120ms var(--a-ease-out);
}
body.ka .ka-editor__btn:hover { background: var(--a-surface-subtle); }
body.ka .ka-editor__btn:active { transform: scale(0.97); }
body.ka .ka-editor textarea, body.ka .ka-editor textarea:focus {
  display: block; box-sizing: border-box; width: 100% !important; min-height: 120px; margin: 0; padding: 12px 14px;
  border: 0; border-radius: 0; box-shadow: none; outline: none; resize: vertical; overflow: hidden;
  font: 400 15px/1.65 var(--a-sans); color: var(--a-text-primary); background: none;
}
.ka-editor__count { padding: 6px 12px; border-top: 1px solid var(--a-border); background: var(--a-surface-page); font: 500 12px/1.4 var(--a-sans); color: var(--a-text-secondary); text-align: right; }
.ka-editor.is-over .ka-editor__count { color: #b91c1c; }

/* ---------- Responsive hardening (found by automated 360–1920px checks) ---------- */
/* Long words, URLs and emails never widen the page. */
body.ka .ep_tm_page_content { overflow-wrap: anywhere; }
body.ka .ep_tm_page_content pre, body.ka .ep_tm_page_content code { white-space: pre-wrap; }
/* Footer lockup wraps on small screens. */
body.ka .ka-footer .ka-logo { min-width: 0; }
body.ka .ka-footer .ka-logo__word { min-width: 0; white-space: normal; }
@media (max-width: 640px) {
  body.ka .ka-logo__over { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  /* Import bar and other inline control groups stack. */
  body.ka .ep_import_bar, body.ka .ep_import_bar > div, body.ka .ep_import_bar > div > div { flex-wrap: wrap; width: 100%; }
  body.ka .ep_import_bar label { flex-wrap: wrap; width: 100%; }
  body.ka .ep_import_bar .ts-wrapper, body.ka .ep_columns_add .ts-wrapper { width: 100%; }
  body.ka .ka-actionbar { padding: 12px; }
  body.ka .ka-actionbar > * { width: 100%; }
  /* Record view tables stack label above value. */
  body.ka .ep_view_details_table, body.ka .ep_view_details_table tbody, body.ka .ep_view_details_table tr,
  body.ka .ep_view_details_table th, body.ka .ep_view_details_table td { display: block; width: auto !important; }
  body.ka .ep_view_details_table tr.ep_table_row > th, body.ka .ep_view_details_table tr > th:not(.ep_title_row) { padding-bottom: 0; border-bottom: 0; }
  /* Wide multi-column inputs (authors, editors) scroll inside their card. */
  body.ka .ep_sr_content { overflow-x: auto; }
  body.ka .ep_sr_content .ep_form_input_grid:has(.heading) input.ep_form_text { min-width: 140px; }
}
body.ka .ep_title_row_inner { flex-wrap: wrap; }
body.ka .ep_title_row_inner > * { min-width: 0; }
body.ka h1.ep_tm_pagetitle { overflow-wrap: anywhere; }
body.ka .ep_view_details_table, body.ka .ep_view_details_table * { box-sizing: border-box; max-width: 100%; }

/* ---------- Rich-text editor (Quill, abstract) ---------- */
body.ka .ka-editor--rich .ql-toolbar.ql-snow {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px 8px; border: 0; border-bottom: 1px solid var(--a-border);
  background: var(--a-surface-page); font-family: var(--a-sans);
}
body.ka .ka-editor--rich .ql-toolbar.ql-snow .ql-formats { display: inline-flex; gap: 2px; margin: 0; padding-right: 6px; border-right: 1px solid var(--a-border); }
body.ka .ka-editor--rich .ql-toolbar.ql-snow .ql-formats:last-child { border-right: 0; }
body.ka .ka-editor--rich .ql-toolbar.ql-snow button { width: 32px; height: 32px; padding: 6px; border-radius: var(--a-radius-sm); transition: background-color var(--a-dur-fast) ease; }
body.ka .ka-editor--rich .ql-toolbar.ql-snow button:hover, body.ka .ka-editor--rich .ql-toolbar.ql-snow button.ql-active { background: var(--a-surface-subtle); }
body.ka .ka-editor--rich .ql-snow .ql-stroke { stroke: var(--a-text-secondary); }
body.ka .ka-editor--rich .ql-snow .ql-fill { fill: var(--a-text-secondary); }
body.ka .ka-editor--rich .ql-snow button:hover .ql-stroke, body.ka .ka-editor--rich .ql-snow button.ql-active .ql-stroke { stroke: var(--a-brand-primary); }
body.ka .ka-editor--rich .ql-snow button:hover .ql-fill, body.ka .ka-editor--rich .ql-snow button.ql-active .ql-fill { fill: var(--a-brand-primary); }
body.ka .ka-editor--rich .ql-snow .ql-picker { height: 32px; font: 600 13px/32px var(--a-sans); color: var(--a-text-primary); }
body.ka .ka-editor--rich .ql-snow .ql-picker-options { border-radius: var(--a-radius-md); box-shadow: 0 12px 32px rgba(6, 29, 59, .12); }
body.ka .ka-editor--rich .ql-container.ql-snow { border: 0; font: 400 15px/1.7 var(--a-sans); color: var(--a-text-primary); }
body.ka .ka-editor--rich .ql-editor { min-height: 220px; max-height: 60vh; overflow-y: auto; padding: 14px 16px; }
body.ka .ka-editor--rich .ql-editor.ql-blank::before { left: 16px; right: 16px; font-style: normal; color: var(--a-text-secondary); opacity: .7; }
body.ka .ka-editor--rich .ql-editor h3 { font: 700 18px/1.4 var(--a-sans); margin: 12px 0 6px; }
body.ka .ka-editor--rich .ql-editor h4 { font: 700 16px/1.4 var(--a-sans); margin: 10px 0 4px; }
body.ka .ka-editor--rich .ql-editor blockquote { margin: 8px 0; padding-left: 12px; border-left: 3px solid var(--a-brand-accent); color: var(--a-text-secondary); }
body.ka .ka-editor--rich .ql-editor a { color: var(--a-brand-primary); }
body.ka .ka-editor--rich .ql-snow .ql-tooltip { z-index: 5; border-radius: var(--a-radius-md); box-shadow: 0 12px 32px rgba(6, 29, 59, .12); font-family: var(--a-sans); }
body.ka .ka-editor--rich .ql-snow .ql-tooltip input[type="text"] { height: 32px; padding: 0 8px; }

/* Formatted abstract on public item pages */
.ka-richtext p { margin: 0 0 12px; }
.ka-richtext p:last-child { margin-bottom: 0; }
.ka-richtext h3 { margin: 16px 0 8px; font: 700 18px/1.4 var(--a-sans); }
.ka-richtext h4 { margin: 14px 0 6px; font: 700 16px/1.4 var(--a-sans); }
.ka-richtext ul, .ka-richtext ol { margin: 0 0 12px; padding-left: 22px; }
.ka-richtext blockquote { margin: 0 0 12px; padding-left: 14px; border-left: 3px solid var(--a-brand-accent); color: var(--a-text-secondary); }

/* ---------- Empty listings ---------- */
body.ka table.ep_columns td.ep_columns_no_items { padding: 0; border: 0; background: none; }
body.ka .ka-emptystate--table { padding: 32px 16px; border: 0; border-radius: 0; background: none; }
body.ka .ka-emptystate--table img { width: 120px; }
body.ka .ka-emptystate--table .ka-emptystate__title { font-size: 15px; font-weight: 600; color: var(--a-text-secondary); }
body.ka table.ep_columns.is-empty tr:has(> td.ep_columns_alter) { display: none; }

/* ---------- Data sets (Kelola data) ---------- */
body.ka #ep_datasets_table, body.ka #ep_datasets_table tbody { display: block; width: 100%; border: 0; }
body.ka #ep_datasets_table tbody { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
body.ka #ep_datasets_table tr.ka-datasetcard {
  position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px 20px 20px 72px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg);
  background: var(--a-surface-card); transition: border-color var(--a-dur-fast) ease, box-shadow var(--a-dur) ease, transform var(--a-dur) var(--a-ease-out);
}
body.ka #ep_datasets_table tr.ka-datasetcard::before {
  content: ""; position: absolute; left: 20px; top: 20px; width: 40px; height: 40px; border-radius: var(--a-radius-md);
  background: var(--a-surface-subtle) var(--ka-icon) center / 20px no-repeat;
}
body.ka #ep_datasets_table tr.ka-datasetcard th, body.ka #ep_datasets_table tr.ka-datasetcard td { display: block; padding: 0; border: 0; text-align: left; background: none; }
body.ka #ep_datasets_table tr.ka-datasetcard th a { font: 600 16px/1.4 var(--a-sans); color: var(--a-text-primary); text-decoration: none; }
body.ka #ep_datasets_table tr.ka-datasetcard th a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
body.ka #ep_datasets_table tr.ka-datasetcard td { font: 400 13px/1.55 var(--a-sans); color: var(--a-text-secondary); }
body.ka #ep_datasets_table tr.ka-datasetcard:focus-within { outline: 2px solid var(--a-brand-accent); outline-offset: 2px; }
body.ka #ep_datasets_table tr.ka-datasetcard th a:focus-visible { outline: none; }
@media (hover: hover) and (pointer: fine) {
  body.ka #ep_datasets_table tr.ka-datasetcard:hover { transform: translateY(-2px); border-color: var(--a-brand-primary); box-shadow: 0 8px 24px rgba(10, 46, 92, .10); }
}
body.ka #ep_datasets_table tr.ka-datasetcard > th, body.ka #ep_datasets_table tr.ka-datasetcard > td { width: auto !important; min-width: 0; overflow-wrap: normal; }

/* ---------- Admin tools list (button + description per row) ---------- */
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) { width: 100%; border-collapse: collapse; border-spacing: 0; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) tr { border-bottom: 1px solid var(--a-border); }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) tr:last-child { border-bottom: 0; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td { padding: 12px 16px; text-align: left; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td:first-child { width: 220px; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td:first-child form { margin: 0; }
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td .ep_form_action_button {
  width: 100%; min-width: 0; justify-content: center; background: var(--a-surface-card); color: var(--a-text-primary) !important; border-color: var(--a-border);
}
body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td .ep_form_action_button:hover { background: var(--a-surface-subtle); border-color: var(--a-brand-primary); }
body.ka .ep_tab_panel:has(> div > table:not(.ep_view_details_table):not(.ep_columns)) { padding: 8px 0 0; }
body.ka .ep_tab_panel > div:has(> table:not(.ep_view_details_table):not(.ep_columns)) { border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); overflow: hidden; }
@media (max-width: 640px) {
  body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td { display: block; width: auto !important; padding: 8px 16px; }
  body.ka .ep_tab_panel table:not(.ep_view_details_table):not(.ep_columns) td:first-child { padding-top: 14px; }
}

/* ---------- Phrase editor ---------- */
.ka-filterbar { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 12px; margin: 16px 0 12px; padding: 10px 12px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); box-shadow: 0 4px 12px rgba(6, 29, 59, .04); }
body.ka .ka-filterbar input[type="search"] { flex: 1; min-width: 0; height: 40px; padding: 0 12px 0 36px; background: var(--a-surface-card) url(../../images/kemenhub/search.svg) 10px center / 18px no-repeat; }
.ka-filterbar .ka-small { white-space: nowrap; }
body.ka #ep_phraseedit_addbar { margin: 0 0 8px; padding: 12px; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); background: var(--a-surface-card); }
body.ka #ep_phraseedit_addbar form { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
body.ka #ep_phraseedit_addbar input[type="text"] { flex: 1 1 240px; }
body.ka #ep_phraseedit_table { width: 100%; border: 1px solid var(--a-border); border-radius: var(--a-radius-lg); border-collapse: separate; border-spacing: 0; background: var(--a-surface-card); overflow: hidden; table-layout: fixed; }
body.ka #ep_phraseedit_table th { padding: 10px 14px; border-bottom: 1px solid var(--a-border); background: var(--a-surface-page); font: 600 12px/1.4 var(--a-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--a-text-secondary); text-align: left; }
body.ka #ep_phraseedit_table th:nth-child(1) { width: 30%; }
body.ka #ep_phraseedit_table th:nth-child(3) { width: 110px; }
body.ka #ep_phraseedit_table td { padding: 10px 14px; border-bottom: 1px solid var(--a-border); vertical-align: top; }
body.ka #ep_phraseedit_table td:first-child { font: 500 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--a-text-primary); word-break: break-all; }
body.ka #ep_phraseedit_table td:nth-child(3) { font: 500 11px/1.4 var(--a-sans); color: var(--a-text-secondary); overflow-wrap: anywhere; }
body.ka #ep_phraseedit_table tr[hidden] { display: none !important; }
body.ka .ep_phraseedit_widget { min-height: 34px; padding: 6px 10px; border: 1px solid var(--a-border); border-radius: var(--a-radius-sm); background: var(--a-surface-page); font: 400 13px/1.5 var(--a-sans) !important; cursor: text; transition: border-color var(--a-dur-fast) ease, background-color var(--a-dur-fast) ease; }
body.ka .ep_phraseedit_widget:hover { border-color: var(--a-brand-primary); background: var(--a-surface-card); }
@media (max-width: 760px) {
  body.ka #ep_phraseedit_table, body.ka #ep_phraseedit_table tbody, body.ka #ep_phraseedit_table tr, body.ka #ep_phraseedit_table td { display: block; width: auto !important; }
  body.ka #ep_phraseedit_table tr:first-child:has(th) { display: none; }
  body.ka #ep_phraseedit_table td { border-bottom: 0; padding: 6px 14px; }
  body.ka #ep_phraseedit_table tr { border-bottom: 1px solid var(--a-border); padding: 6px 0; }
}
