/* Application refinement: clear hierarchy, compact work areas, restrained motion. */
.dense-ui {
 --ui-ink:#2f3437; --ui-secondary:#6f6c68; --ui-soft:#f7f6f3;
 --ui-line:#eaeaea; --ui-accent-soft:#f8edf0; --ui-accent-hover:#71031c;
 font-size:13px; line-height:1.55;
}
.dense-ui .workspace-sidebar { width:232px; padding:22px 14px 14px; }
.dense-ui .workspace-brand { margin:2px 12px 22px; }
.dense-ui .workspace-sidebar-nav { gap:14px; scrollbar-width:thin; scrollbar-color:#e1d9df transparent; }
.dense-ui .workspace-sidebar-group h2 { color:var(--ui-secondary); font-size:11px; font-weight:500; margin-bottom:7px; }
.dense-ui .workspace-sidebar :is(.workspace-destination,.workspace-home-link) { font-size:12px; min-height:38px; padding:9px 11px; }
.dense-ui .workspace-sidebar .workspace-current-destination { box-shadow:inset 2px 0 var(--ui-accent); }
.dense-ui .workspace-sidebar-sections { margin:5px 0 9px 20px; padding-left:10px; gap:1px; }
.dense-ui .workspace-sidebar-sections button { min-height:31px; padding:6px 8px; font-size:11.5px; line-height:1.45; }
.dense-ui .workspace-sidebar-sections button[aria-current="page"] { background:transparent; color:var(--ui-accent); box-shadow:inset 2px 0 var(--ui-accent); border-radius:0 5px 5px 0; }
.dense-ui .workspace-topbar { min-height:60px; padding-block:10px; }
.dense-ui .workspace-location { font-size:12px; }
.dense-ui .workspace-location > span:first-child { color:#807583; }
.dense-ui .workspace-main { padding:24px 28px; scrollbar-gutter:stable; }
.dense-ui :is(.module-title,.ui-page-header h1,.directory-heading h1,.workspace-heading h1),
.dense-ui .services-page .service-header :is(h1,h2) { font-size:27px; font-weight:700; line-height:1.25; letter-spacing:-.7px; text-wrap:balance; }
.dense-ui .module-title-group { min-width:0; }
.dense-ui .ui-page-header { min-height:36px; }
.dense-ui .module-screen h3 { font-weight:700; letter-spacing:-.2px; }
.dense-ui :is(.ui-panel,.ui-table-wrap,.settings-field-section,.announcement-feed) { border-color:var(--ui-line); box-shadow:0 1px 2px #29162004; }
.dense-ui .ui-panel { border-radius:10px; }
.dense-ui .ui-panel .ui-panel { border-radius:8px; box-shadow:none; }
.dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit) { border-radius:6px; font-size:12px; font-weight:700; }
.dense-ui button:disabled { opacity:.48; }
.dense-ui :is(input,textarea)::placeholder { color:#817987; opacity:1; }
.dense-ui :is(input.ui-input,select.ui-input,textarea.ui-input):focus { border-color:#b86a80; box-shadow:0 0 0 3px #8804220a; }
.dense-ui :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--ui-accent); outline-offset:3px; }
.dense-ui .dataset-search input { height:36px; min-height:36px; padding-block:6px; font-size:12px; }
.dense-ui .table-filter-inline .table-filter-body .relative:has(input) { min-width:170px; }
.dense-ui .dataset-actions button { border-radius:7px; }
.dense-ui .module-tab-action-row { margin-bottom:12px; }
.dense-ui .module-tab-actions { padding-block:5px; }
.dense-ui .services-page .service-tabs .module-tab { min-height:42px; padding:10px 12px; font-weight:500; }
.dense-ui .services-page .service-tabs .module-tab[aria-pressed="true"] { font-weight:700; }
.dense-ui .services-page .service-tabs .module-tab:hover { background:#88042204; color:var(--ui-accent); }
.dense-ui .module-screen details.ui-help { margin:0 0 10px!important; }
.dense-ui .ui-help > summary { color:var(--ui-secondary); font-size:11.5px; }
.dense-ui .ui-help[open] { padding:12px 14px; border:1px solid var(--ui-line); border-radius:8px; background:var(--ui-soft); }
.dense-ui .ui-help p { max-width:86ch; }
.dense-ui .ui-data-table th { padding:11px 14px; font-size:12px; font-weight:700; color:#655c69; background:var(--ui-soft); }
.dense-ui .ui-data-table td { padding:11px 14px; font-size:13px; line-height:1.6; }
.dense-ui .ui-data-table tbody tr:hover { background:#fbfbfa; }
.dense-ui .record-primary :is(a,p:first-child) { font-weight:700; }
.dense-ui .ui-data-table tbody tr:last-child td { border-bottom:0; }
.dense-ui .ui-data-table :is(td button[title],td a[title]) { transition:background-color .12s,color .12s; }
.dense-ui .ui-data-table :is(td button[title],td a[title]):hover { color:var(--ui-accent); background:var(--ui-accent-soft); }
.dense-ui :is(.overview-stats,.service-metrics,.ui-metric-grid) { grid-auto-flow:dense; }
.dense-ui .overview-stats { gap:10px; }
.dense-ui .overview-stats > div { border-radius:9px; padding:15px 18px; }
.dense-ui .overview-stats p:nth-child(2) { font-weight:700; font-size:30px; letter-spacing:-1px; }
.dense-ui .services-page .service-metrics { border-radius:9px; }
.dense-ui .services-page .service-metrics > :is(div,button) { padding:14px 16px; }
.dense-ui .services-page .service-metrics p:first-child { font-size:12px; font-weight:500; }
.dense-ui .services-page .service-metrics :is(.text-2xl,.text-xl,.text-lg) { font-weight:700; }
.dense-ui .library-book-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); grid-auto-flow:dense; gap:14px; }
.dense-ui .library-book-card { border:1px solid var(--ui-line); border-radius:10px; }
.dense-ui .library-book-card > div:first-child { width:76px; background:linear-gradient(155deg,#faf7f8,#f2e8ec); }
.dense-ui .library-book-card > div:last-child { flex:1; min-width:0; padding:16px; }
.dense-ui .library-book-card h3 { font-size:14px; line-height:1.45; }
.dense-ui .library-book-card button { border-radius:6px; }
.dense-ui .screen-library:has(.catalog-actions) .service-header button[title="Tambah buku"] { display:none; }
.dense-ui .notes-board { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); grid-auto-flow:dense; gap:14px; }
.dense-ui .notes-board .note-card { border-radius:10px; padding:18px; }
.dense-ui .note-card h3 { font-size:15px; font-weight:700; }
.dense-ui .announcement-item { padding:18px 20px; gap:20px; }
.dense-ui .announcement-content p:first-child { font-size:14px; font-weight:700; }
.dense-ui .settings-category-grid { padding:4px; gap:3px; border-radius:9px; }
.dense-ui .settings-category-grid > button { font-size:12px; border-radius:6px; min-height:34px; }
.dense-ui .settings-category-grid > button:hover { background:var(--ui-soft)!important; }
.dense-ui .settings-section-context h3 { font-weight:700; font-size:15px; }
.dense-ui .person-record-layout { grid-template-columns:240px minmax(0,1fr); gap:20px; }
.dense-ui .person-record-context .ui-panel { padding:18px; }
.dense-ui .person-record-content .ui-panel { padding:18px; }
.dense-ui :is(.ui-dialog,.service-dialog) { border:1px solid var(--ui-line); border-radius:12px; box-shadow:0 16px 64px #29162024; }
.dense-ui :is(.ui-dialog,.service-dialog) button[aria-label="Tutup panel"] { display:inline-flex; align-items:center; justify-content:center; min-width:32px; min-height:32px; border-radius:6px; }
.dense-ui :is(.ui-dialog,.service-dialog) button[aria-label="Tutup panel"]:hover { background:var(--ui-soft); color:var(--ui-accent); }
.dense-ui .service-empty { padding:30px 18px; color:var(--ui-secondary); line-height:1.6; }
@media(prefers-reduced-motion:no-preference) {
 .dense-ui .module-screen { animation:workspace-enter .36s cubic-bezier(.16,1,.3,1) backwards; }
 .dense-ui .library-book-card:hover,.dense-ui .note-card:hover { border-color:#cdb9c1; box-shadow:0 3px 12px #29162008; }
 .dense-ui .workspace-destination,.dense-ui .workspace-sidebar-sections button { transition:background-color .12s,color .12s,box-shadow .12s; }
}
@keyframes workspace-enter { from { opacity:.45; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) {
 .dense-ui *,.dense-ui *::before,.dense-ui *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .dense-ui button:active { transform:none!important; }
 .dense-ui .module-screen { opacity:1; transform:none; }
}
@media(min-width:768px) and (max-width:1199px) {
 .dense-ui .workspace-sidebar { width:216px; }
 .dense-ui .workspace-main { padding:22px; }
}
@media(max-width:767px) {
 .dense-ui .workspace-sidebar { width:260px; }
 .dense-ui .workspace-main { padding:18px 16px; scrollbar-gutter:auto; }
 .dense-ui .workspace-topbar { min-height:60px; }
 .dense-ui :is(.module-title,.ui-page-header h1,.directory-heading h1,.workspace-heading h1),
 .dense-ui .services-page .service-header :is(h1,h2) { font-size:23px; letter-spacing:-.5px; }
 .dense-ui .ui-page-header { gap:10px; }
 .dense-ui .ui-data-table td { padding:10px 12px; }
 .dense-ui .record-table .record-primary { font-size:13px; }
 .dense-ui .library-book-grid,.dense-ui .notes-board { grid-template-columns:minmax(0,1fr); }
 .dense-ui .person-record-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
 .dense-ui .announcement-item { padding:16px; gap:12px; }
 .dense-ui .overview-stats > div { padding:14px; }
 .dense-ui .overview-stats p:nth-child(2) { font-size:27px; }
 .dense-ui .services-page .service-metrics > :is(div,button) { padding:13px 14px; }
}

.dark .dense-ui .ui-data-table th { background:var(--ui-soft); color:var(--ui-secondary); }
.dark .dense-ui .ui-data-table tbody tr:hover { background:var(--ui-soft); }
.dark .dense-ui .library-book-card > div:first-child { background:var(--ui-soft); }

.dark .dense-ui { --ui-accent-hover:#f6b8ca; }

@media(max-width:1199px) {
 .dense-ui .services-page .service-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dense-ui .services-page .service-metrics > :nth-child(2n) { border-right:0; }
 .dense-ui .services-page .service-metrics > :last-child:nth-child(odd) { grid-column:1/-1; border-right:0; }
}

/* Navigation typography follows a readable 14/13px hierarchy. */
.dense-ui .workspace-sidebar :is(.workspace-destination,.workspace-home-link) { font-size:14px; min-height:42px; line-height:1.4; }
.dense-ui .workspace-sidebar-group h2 { font-size:12px; }
.dense-ui .workspace-sidebar-sections button { font-size:13px; min-height:36px; line-height:1.4; }
.dense-ui .workspace-destination-icon { font-size:18px; }
.dense-ui .module-tabbar .module-tab,
.dense-ui .services-page .service-tabs .module-tab,
.dense-ui .workspace-section-nav button { font-size:14px; min-height:44px; line-height:1.4; }
.dense-ui .settings-category-grid > button { font-size:14px; min-height:40px; }
.dense-ui .portal-sidebar-services .rail-label { font-size:14px; }
.dense-ui .portal-sidebar-services .sidebar-rail-item { min-height:42px; }

.dense-ui .workspace-sidebar-footer { padding:10px 0 0; }
.dense-ui .workspace-profile-link { display:flex; align-items:center; gap:10px; min-height:40px; padding:9px 12px; margin-bottom:6px; border-radius:8px; color:var(--ui-secondary); font-size:13px; }
.dense-ui .workspace-profile-link > span { font-size:13px; font-weight:500; }
.dense-ui .workspace-profile-link > iconify-icon { font-size:18px; }
.dense-ui .workspace-profile-link[aria-current="page"] { color:var(--ui-accent); background:var(--ui-accent-soft); }
.dense-ui .workspace-sidebar-footer > span { display:block; padding-inline:12px; }

/* Small interactive transitions; no delays on data actions. */
@media(prefers-reduced-motion:no-preference) {
 .dense-ui :is(.workspace-sidebar,.portal-workspace-sidebar) { transition-property:transform,visibility!important; transition-duration:.24s!important; transition-timing-function:cubic-bezier(.2,.75,.25,1); }
 .dense-ui :is(.module-tab,.workspace-destination,.workspace-sidebar-sections button,.primary-action) { transition-property:background-color,border-color,color,box-shadow,transform!important; transition-duration:.18s; transition-timing-function:ease-out; }
 .dense-ui .primary-action:active:not(:disabled) { transform:translateY(1px) scale(.99); }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .dense-ui .workspace-destination:hover,.dense-ui .workspace-sidebar-sections button:hover { transform:translateX(2px); }
 .dense-ui .primary-action:hover:not(:disabled) { transform:translateY(-1px); }
 .dense-ui .primary-action:active:not(:disabled) { transform:translateY(1px) scale(.99); }
}

/* Active navigation uses a soft tint and a slim inset marker. */
.dense-ui .workspace-sidebar :is(.workspace-current-destination,.router-link-active),
.dense-ui .workspace-sidebar-sections button[aria-current="page"],
.dense-ui .workspace-profile-link[aria-current="page"],
.dense-ui .portal-sidebar-services .sidebar-rail-item.active {
 background:var(--ui-accent-soft)!important; color:var(--ui-accent)!important;
 border-radius:6px; box-shadow:inset 2px 0 var(--ui-accent); font-weight:600;
}
.dense-ui .workspace-sidebar :is(.workspace-current-destination,.router-link-active) :is(span,iconify-icon),
.dense-ui .workspace-sidebar-sections button[aria-current="page"] iconify-icon,
.dense-ui .workspace-profile-link[aria-current="page"] :is(span,iconify-icon),
.dense-ui .portal-sidebar-services .sidebar-rail-item.active :is(.rail-label,.rail-icon-box,iconify-icon) { color:inherit!important; background:transparent!important; }
@media(prefers-reduced-motion:no-preference) {
 .dense-ui .workspace-route-enter-active { transition:opacity .34s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1)!important; }
 .dense-ui .workspace-route-leave-active { transition:opacity .12s ease-in,transform .12s ease-in!important; pointer-events:none; }
 .dense-ui :is(.workspace-route-enter-active,.workspace-route-leave-active) { transition-property:opacity,transform!important; animation:none!important; }
 .dense-ui .workspace-route-enter-from { opacity:0; transform:translateY(10px); }
 .dense-ui .workspace-route-leave-to { opacity:0; transform:translateY(-3px); }
 .dense-ui :is(.workspace-route-enter-to,.workspace-route-leave-from) { opacity:1; transform:none; }
 .dense-ui :is(.workspace-sidebar,.portal-workspace-sidebar) { transition-duration:.32s!important; transition-timing-function:cubic-bezier(.16,1,.3,1); }
 .dense-ui .workspace-sidebar :is(a,button) { transition-property:background-color,background-position,color,box-shadow!important; transition-duration:.28s; transition-timing-function:cubic-bezier(.16,1,.3,1); }
}
@media(hover:hover) {
 .dense-ui .workspace-destination:hover,.dense-ui .workspace-sidebar-sections button:hover { transform:none!important; }
 .dense-ui .workspace-sidebar :is(.workspace-current-destination,.router-link-active):hover,
 .dense-ui .workspace-sidebar-sections button[aria-current="page"]:hover,
 .dense-ui .workspace-profile-link[aria-current="page"]:hover { background-position:100% 50%!important; }
}
@media(prefers-reduced-motion:reduce) {
 .dense-ui :is(.workspace-route-enter-active,.workspace-route-leave-active) { transition:none!important; animation:none!important; }
 .dense-ui :is(.workspace-route-enter-from,.workspace-route-leave-to) { opacity:1; transform:none; }
}

/* Routed roots use Vue transitions only, avoiding a second entry animation. */
.dense-ui .workspace-main > .module-screen { animation:none!important; }

/* Modal roots escape route animations; their cards keep their own scrolling. */
.dense-ui .ui-modal-layer { position:fixed!important; inset:0!important; z-index:1000; }
.dense-ui .ui-floating-dropdown {
 position:fixed!important; right:auto!important; bottom:auto!important; margin:0!important;
 min-width:0!important; box-sizing:border-box; z-index:2000!important;
 flex-direction:column; overflow:hidden; pointer-events:auto;
}
.dense-ui .ui-floating-dropdown:not([popover]),.dense-ui .ui-floating-dropdown:popover-open { display:flex; }
.dense-ui .ui-floating-dropdown[popover]:not(:popover-open),.dense-ui .ui-floating-dropdown[data-ui-suspended] { display:none!important; }
.dense-ui .ui-floating-dropdown::backdrop { background:transparent; pointer-events:none; }
.dense-ui .ui-floating-dropdown > .overflow-y-auto { flex:1 1 auto; min-height:0; max-height:unset; overflow-y:auto; overscroll-behavior:contain; }
.dense-ui .ui-floating-dropdown:is(ul,.overflow-y-auto) { overflow-y:auto; overscroll-behavior:contain; }
.dense-ui .ui-floating-dropdown > :not(.overflow-y-auto) { flex-shrink:0; }

/* A white campus workspace with one restrained burgundy accent system. */
.dense-ui {
 --ui-gradient:linear-gradient(115deg,#880422 0%,#9d2847 62%,#921433 100%);
 --ui-gradient-soft:linear-gradient(110deg,#f7e9ee 0%,#fcf6f8 65%,#fff 100%);
 --ui-on-accent:#fff;
}
.dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit),
.dense-ui :is(.bg-black,.bg-zinc-900,.bg-zinc-950,.bg-slate-900,.bg-slate-950,.bg-gray-900,.bg-neutral-900):not(body):not(.ui-modal-layer) {
 background:var(--ui-gradient)!important;
 background-size:140% 100%!important;
 background-position:0% 50%!important;
 color:#fff!important;
 border-color:transparent;
}
/* Utility text colours on dark-mode controls must follow the accent surface. */
.dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit,.bg-black,.bg-zinc-900,.bg-zinc-950,.bg-slate-900,.bg-slate-950,.bg-gray-900,.bg-neutral-900) > :is(span,iconify-icon,h2,h3,p) { color:inherit!important; }
.dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit):hover:not(:disabled),
.dense-ui button:is(.bg-black,.bg-zinc-900,.bg-zinc-950,.bg-slate-900):hover:not(:disabled) { background:var(--ui-gradient)!important; background-size:140% 100%!important; background-position:100% 50%!important; }
.dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit) { min-height:36px; padding:8px 14px; border-radius:6px; box-shadow:none; }

/* A module heading, a single navigation row, then the working surface. */
.dense-ui :is(.module-page-heading,.directory-heading,.workspace-heading) { padding-bottom:4px; }
.dense-ui :is(.module-tabbar,.services-page .service-tabs) { gap:4px; padding:4px; border:0; border-radius:10px; background:var(--ui-soft); }
.dense-ui .module-tabbar .module-tab,
.dense-ui .services-page .service-tabs .module-tab { min-height:38px; padding:8px 12px; border:0; border-radius:7px; line-height:1.4; }
.dense-ui .module-tabbar .module-tab:is([aria-pressed="true"],[aria-selected="true"]),
.dense-ui .services-page .service-tabs .module-tab:is([aria-pressed="true"],[aria-selected="true"]),
.dense-ui .settings-category-grid > button[aria-pressed="true"],
.dense-ui .workspace-section-nav button[aria-current="page"] {
 background:var(--ui-gradient)!important; color:#fff!important; box-shadow:none; border-color:transparent;
}
.dense-ui .module-tabbar .module-tab:is([aria-pressed="true"],[aria-selected="true"]) :is(span,iconify-icon),
.dense-ui .services-page .service-tabs .module-tab:is([aria-pressed="true"],[aria-selected="true"]) :is(span,iconify-icon) { color:inherit!important; }
.dense-ui .module-tabbar .module-tab:is([aria-pressed="true"],[aria-selected="true"]) span + span { background:#ffffff24!important; color:#fff!important; }
.dense-ui .settings-category-grid > button[aria-pressed="true"]:hover { background:var(--ui-gradient)!important; }
.dense-ui .module-tab-action-row { align-items:center; gap:12px; }
.dense-ui .module-tab-actions { padding:0; }
.dense-ui :is(.dataset-toolbar,.directory-search-filter-row,.services-page .service-list-toolbar) { box-shadow:none; border-color:var(--ui-line); }
.dense-ui .directory-search-filter-row { padding:10px; border-radius:10px; }
.dense-ui :is(.dataset-toolbar,.directory-search-filter-row,.service-list-toolbar) :is(input,select) { border-radius:7px; }
.dense-ui .ui-table-wrap { border-radius:10px; overflow-x:auto; }
.dense-ui .ui-data-table th { background:var(--ui-soft); padding-block:12px; }
.dense-ui .ui-data-table td { padding-block:12px; }
.dense-ui .ui-data-table td :is(button,a)[title] { border-radius:6px; }
.dense-ui .services-page .service-metrics { margin-block:16px; }
.dense-ui .service-metrics > :is(div,button) { position:relative; }
.dense-ui .service-active-period { background:var(--ui-gradient); padding:20px; }
.dense-ui .service-active-period :is(h2,h3,p,span) { color:inherit; }

/* Keep student destinations discoverable, including when PMB is active. */
.dense-ui .workspace-sidebar { padding-top:18px; }
.dense-ui .workspace-brand { margin-bottom:18px; }
.dense-ui .workspace-sidebar-nav { gap:16px; }
.dense-ui .workspace-sidebar-group h2 { font-size:11px; letter-spacing:.03em; margin-bottom:6px; }
.dense-ui .workspace-sidebar-sections { margin:3px 0 7px 18px; padding-left:8px; gap:2px; }
.dense-ui .workspace-sidebar-sections button { padding:8px; min-height:35px; }
.dense-ui .workspace-sidebar-sections button iconify-icon { flex-shrink:0; font-size:16px; }
.dense-ui .workspace-sidebar .workspace-destination[data-navigation-group="mhs"] {
 background:transparent!important; color:var(--ui-secondary)!important; box-shadow:none; font-weight:500;
}
.dense-ui .workspace-sidebar .workspace-destination[data-navigation-group="mhs"] :is(span,iconify-icon) { color:inherit!important; }
.dense-ui .workspace-sidebar .workspace-destination[data-navigation-group="mhs"].workspace-parent-current { color:var(--ui-accent)!important; font-weight:700; }
.dense-ui .workspace-sidebar :is(.workspace-current-destination,.router-link-active):not([data-navigation-group="mhs"]),
.dense-ui .workspace-sidebar-sections button[aria-current="page"],
.dense-ui .workspace-profile-link[aria-current="page"],
.dense-ui .portal-sidebar-services .sidebar-rail-item.active { background:var(--ui-accent-soft)!important; }
.dense-ui .workspace-destination > iconify-icon:last-child { display:none; }

/* Dashboard: figures, quick access, then available work widgets. */
.dense-ui .dense-dashboard { gap:20px; }
.dense-ui .workspace-period { justify-content:flex-end; gap:6px 12px; }
.dense-ui .workspace-period > span:last-child { padding:4px 9px; border-radius:6px; background:var(--ui-soft); }
.dense-ui .workspace-period > span.period-open { background:var(--ui-gradient-soft); color:var(--ui-accent); }
.dense-ui .overview-stats { gap:0; border:1px solid var(--ui-line); border-radius:12px; overflow:hidden; }
.dense-ui .overview-stats > div { border:0; border-right:1px solid var(--ui-line); border-radius:0; padding:18px 20px; background:var(--ui-surface); }
.dense-ui .overview-stats > div:last-child { border-right:0; }
.dense-ui .overview-stats > div:nth-child(3) { background:var(--ui-gradient-soft); }
.dense-ui .overview-stats p:first-child { font-size:12px; font-weight:500; text-transform:none; letter-spacing:0; }
.dense-ui .overview-stats p:nth-child(2) { font-size:32px; margin-block:7px; font-variant-numeric:tabular-nums; }
.dense-ui .dashboard-services:has(.overview-shortcuts) { margin-top:-4px; }
.dense-ui .dashboard-services:not(:has(button)) { display:none; }
.dense-ui .dashboard-services .overview-shortcuts { justify-content:flex-start; }
.dense-ui .dashboard-services .overview-shortcuts button { min-height:36px; font-size:12px; font-weight:500; text-transform:none; letter-spacing:0; border-color:var(--ui-line); background:var(--ui-surface); }
.dense-ui .dashboard-grid { grid-template-columns:minmax(0,1fr) minmax(290px,32%); gap:20px; }
.dense-ui .dashboard-main-column,.dense-ui .dashboard-context-column { gap:20px; }
.dense-ui .dashboard-grid:not(:has(.dashboard-context-column > *)),
.dense-ui .dashboard-grid:not(:has(.dashboard-main-column > *)) { grid-template-columns:minmax(0,1fr); }
.dense-ui .dashboard-grid:not(:has(.dashboard-main-column > *)) .dashboard-main-column,
.dense-ui .dashboard-grid:not(:has(.dashboard-context-column > *)) .dashboard-context-column { display:none; }
.dense-ui .dense-dashboard .workspace-panel { padding:18px; border-radius:12px; }
.dense-ui .dense-dashboard .workspace-panel h3 { font-size:14px; text-transform:none; letter-spacing:0; }
.dense-ui .workspace-academic-pair { grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr)); gap:16px; }
.dense-ui .dense-dashboard .workspace-schedule { background:var(--ui-gradient)!important; }
.dense-ui .dense-dashboard .workspace-schedule button:first-of-type { background:#fff; color:var(--ui-accent); }
.dense-ui .workspace-transactions .max-h-\[260px\] { max-height:238px; }
.dense-ui .workspace-transactions p { text-transform:none; letter-spacing:0; }
.dense-ui .dense-dashboard .task-tabs { gap:4px; }
.dense-ui .dense-dashboard .task-tabs > button { font-size:14px; min-height:36px; padding:7px 10px; }
.dense-ui .dense-dashboard .workspace-calendar { padding:16px; }
.dense-ui .library-action-grid button:hover { border-color:#d2a4b1; background:var(--ui-gradient-soft); }
.dense-ui .settings-field-section { padding:20px; border-radius:10px; }
.dark .dense-ui { --ui-gradient-soft:linear-gradient(110deg,#38212b,#271f26); }
@media(prefers-reduced-motion:no-preference) {
 .dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit) { transition-property:background-position,box-shadow,transform!important; transition-duration:.25s; }
}
@media(max-width:1199px) {
 .dense-ui .dashboard-grid { grid-template-columns:minmax(0,1fr); }
 .dense-ui .dashboard-context-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
 .dense-ui .overview-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dense-ui .overview-stats > div:nth-child(2) { border-right:0; }
 .dense-ui .overview-stats > div:nth-child(-n+2) { border-bottom:1px solid var(--ui-line); }
}
@media(max-width:767px) {
 .dense-ui .workspace-heading { flex-wrap:wrap; gap:10px; }
 .dense-ui .workspace-period { justify-content:flex-start; }
 .dense-ui .dense-dashboard { gap:16px; }
 .dense-ui .overview-stats > div { padding:15px; }
 .dense-ui .overview-stats p:nth-child(2) { font-size:27px; }
 .dense-ui .dashboard-context-column { display:flex; }
 .dense-ui .dashboard-grid { gap:16px; }
 .dense-ui .dense-dashboard .task-tabs { overflow-x:auto; }
 .dense-ui .dense-dashboard .task-tabs > button { flex:1 0 auto; font-size:12px; }
 .dense-ui .dashboard-services .overview-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dense-ui :is(.primary-action,.btn-primary,.btn-p,.auth-submit) { min-height:40px; }
 .dense-ui .settings-field-section { padding:16px; }
}

/* Forms follow the space available inside the workspace, not the viewport. */
.dense-ui .person-record-layout:not(:has(> .person-record-context)) { grid-template-columns:minmax(0,1fr); }
.dense-ui .person-record-content { container-type:inline-size; container-name:person-form; }
.dense-ui .settings-section-fields { grid-template-columns:repeat(4,minmax(0,1fr)); }
.dense-ui .profile-settings-layout { grid-template-columns:minmax(190px,240px) minmax(0,1fr); align-items:start; }
.dense-ui .profile-form { max-width:880px; min-width:0; }
.dense-ui .profile-identity { min-width:0; }
.dense-ui .profile-identity h4 { overflow-wrap:anywhere; }
.dense-ui .settings-save-bar { bottom:0; padding-block:12px!important; }
.dense-ui .module-tab-action-row { border-bottom:0; }
.dense-ui :is(.module-tabbar,.service-tabs,.settings-category-grid) { scrollbar-width:thin; scrollbar-color:#d8ccd2 transparent; }
.dense-ui .ui-data-table :is(td,th) { overflow-wrap:break-word; }
.dense-ui .ui-data-table :is(input,select) { overflow-wrap:normal; }
.dense-ui .ui-data-table .record-primary a { text-decoration-thickness:1px; text-underline-offset:3px; }
.dense-ui .ui-data-table .record-primary a:hover { text-decoration:underline; }
.dense-ui .ui-help > summary { min-height:32px; align-items:center; }
.dense-ui .service-empty { font-size:13px; line-height:1.6; }
.dense-ui .services-page .service-metrics > button[aria-pressed="true"] { background:var(--ui-gradient)!important; color:#fff; }
.dense-ui .services-page .service-metrics > button[aria-pressed="true"] :is(p,span,iconify-icon) { color:inherit!important; }
/* Searchable lists have a separate clear action and a visible keyboard cursor. */
.dense-ui .searchable-select > button:first-child { min-height:36px; padding-right:32px; border-radius:7px; font-size:13px; }
.dense-ui .searchable-select > button:first-child > span:last-child { position:absolute; right:12px; top:50%; transform:translateY(-50%); }
.dense-ui .searchable-select > button.searchable-has-value { padding-right:56px; }
.dense-ui .searchable-clear { position:absolute; top:50%; right:28px; transform:translateY(-50%); display:grid; place-items:center; width:26px; height:28px; border-radius:5px; color:var(--ui-secondary); background:transparent; z-index:1; }
.dense-ui .searchable-clear:hover { color:var(--ui-accent); background:var(--ui-accent-soft); }
.dense-ui .searchable-clear:active:not(:disabled) { transform:translateY(-50%); }
.dense-ui .searchable-select [role="option"] { min-height:36px; white-space:normal; line-height:1.5; overflow-wrap:anywhere; font-size:13px; }
.dense-ui .searchable-select [role="option"][data-active-option="true"] { background:var(--ui-accent-soft); color:var(--ui-accent); box-shadow:inset 3px 0 var(--ui-accent); }
.dense-ui .searchable-select [role="option"][aria-selected="true"] { background:var(--ui-gradient)!important; color:#fff!important; }
.dense-ui .searchable-select [role="option"][aria-selected="true"][data-active-option="true"] { box-shadow:inset 3px 0 #fff; }
.dense-ui .searchable-select [role="combobox"] { min-height:36px; font-size:13px; }
.dense-ui .ui-floating-dropdown { border-radius:9px; box-shadow:0 10px 30px #2916201c; }
.dense-ui :is(.ui-dialog,.service-dialog)[tabindex="-1"]:focus { outline:none; }
@container person-form (max-width:700px) {
 .dense-ui .person-record-content .ui-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container person-form (max-width:440px) {
 .dense-ui .person-record-content .ui-grid { grid-template-columns:minmax(0,1fr); }
 .dense-ui .person-record-content .ui-grid > * { grid-column:auto; }
}
@media(min-width:768px) and (max-width:1199px) {
 .dense-ui .settings-section-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dense-ui .settings-field:has(select) { grid-column:auto; }
 .dense-ui .profile-settings-layout { grid-template-columns:minmax(0,1fr); }
 .dense-ui .profile-identity > div { flex-direction:row; text-align:left; }
 .dense-ui .profile-identity > div > div { text-align:left; }
}
@media(max-width:767px) {
 .dense-ui .settings-section-fields { grid-template-columns:minmax(0,1fr); }
 .dense-ui .profile-settings-layout { display:flex; flex-direction:column; }
 .dense-ui .profile-identity > div { flex-direction:row; gap:14px; text-align:left; }
 .dense-ui .profile-identity > div > div { text-align:left; }
 .dense-ui .profile-identity img { width:64px; height:64px; }
 .dense-ui .profile-identity h4 { font-size:18px; }
 .dense-ui .profile-identity,.dense-ui .profile-form { width:100%; }
 .dense-ui .ui-modal-layer { padding:12px!important; }
 .dense-ui .ui-modal-layer > :is(.ui-dialog,.service-dialog) { width:100%; max-height:calc(100dvh - 24px); border-radius:12px; margin-block:auto; }
}

/* Utilitarian minimalism: warm neutrals, clear type, and flat working surfaces.
   Burgundy is reserved for small accents and primary actions. */
.dense-ui .module-screen { max-width:1480px; }
.dense-ui .workspace-sidebar { background:var(--ui-surface); }
.dense-ui .workspace-sidebar-group h2 { color:var(--ui-secondary); font-weight:500; }
.dense-ui .workspace-sidebar :is(.workspace-destination,.workspace-home-link) { padding-block:10px; }
.dense-ui .workspace-destination-icon { opacity:.85; }
.dense-ui .workspace-main { padding-block:28px 36px; }
.dense-ui :is(.module-title,.ui-page-header h1,.directory-heading h1,.workspace-heading h1) { letter-spacing:-.035em; font-weight:700; }
.dense-ui :is(.ui-panel,.settings-field-section,.library-book-card,.note-card) { box-shadow:none; border-color:var(--ui-line); border-radius:8px; }
.dense-ui .module-screen .ui-panel .ui-panel:not(.absolute):not(.fixed):not(.font-serif) { border:0; background:var(--ui-soft); box-shadow:none; }
.dense-ui .module-screen .ui-panel .ui-panel:has(> .ui-data-table) { background:var(--ui-surface); }
.dense-ui :is(.module-tabbar,.services-page .service-tabs) { background:var(--ui-soft); border-radius:8px; padding:4px; }
.dense-ui .module-tabbar .module-tab,.dense-ui .services-page .service-tabs .module-tab { border-radius:5px; }
.dense-ui :is(.dataset-toolbar,.directory-search-filter-row,.services-page .service-list-toolbar) { border-radius:8px; }
.dense-ui .directory-search-filter-row { background:var(--ui-soft); border-color:transparent; }
.dense-ui :is(.ui-input,.form-input,.fld) { border-radius:6px; }
.dense-ui .dataset-actions button { border-radius:6px; }
.dense-ui .ui-data-table :is(th,td) { font-variant-numeric:tabular-nums; }
.dense-ui .ui-data-table th { font-weight:500; color:var(--ui-secondary); background:var(--ui-soft); }
.dense-ui .ui-data-table tbody tr:hover { background:var(--ui-soft); }
.dense-ui .record-primary :is(a,p:first-child) { font-weight:600; }
.dense-ui .ui-table-wrap { box-shadow:none; border-radius:8px; }
.dense-ui .settings-category-grid { border:0; background:var(--ui-soft); padding:4px; }
.dense-ui .settings-category-grid > button { font-size:14px; font-weight:500; border-radius:5px; }
.dense-ui .settings-section-context p { max-width:70ch; line-height:1.6; }
.dense-ui .settings-field-section { padding:24px; }
.dense-ui .settings-section-fields { gap:18px; }
.dense-ui .profile-identity { background:var(--ui-soft); border-radius:8px; padding:24px; }
.dense-ui .profile-identity img { border-radius:12px; border-width:0; }
.dense-ui .overview-stats { border-radius:8px; }
.dense-ui .overview-stats > div { padding:20px; }
.dense-ui .overview-stats p:first-child { color:var(--ui-secondary)!important; }
.dense-ui .dense-dashboard .workspace-panel { padding:22px; border-radius:8px; box-shadow:none; }
.dense-ui .workspace-academic-pair .workspace-panel > .grid > div { border-radius:6px; }
.dense-ui .dense-dashboard .workspace-panel h3 { font-weight:600; font-size:15px; }
.dense-ui .dashboard-services .overview-shortcuts button { border-radius:6px; background:var(--ui-soft); border-color:transparent; }
.dense-ui .dashboard-services .overview-shortcuts button:hover { background:var(--ui-accent-soft); }
.dense-ui .services-page .service-metrics { border-radius:8px; }
.dense-ui .services-page .service-metrics > :is(div,button) { padding:18px; }
.dense-ui .services-page .service-metrics p:first-child { line-height:1.5; }
.dense-ui .announcement-feed { border:0; border-radius:0; }
.dense-ui .service-results-heading:has(+ .announcement-feed) { border:0; padding:0 0 12px; border-radius:0; }
.dense-ui .announcement-item { padding:20px 0; gap:24px; border-color:var(--ui-line); }
.dense-ui .announcement-content p:first-child { font-size:15px; font-weight:600; }
.dense-ui .announcement-content p:last-child { font-size:13px; }
.dense-ui .announcement-meta > span { border-radius:4px; font-weight:500; }
.dense-ui .screen-notes .notes-composer > .ui-panel { border-color:transparent; background:var(--ui-soft); box-shadow:none; }
.dense-ui .notes-composer > .ui-panel > .cursor-text { min-height:52px; padding:14px 18px; border-radius:8px; }
.dense-ui .notes-board { gap:16px; }
.dense-ui .notes-board .note-card { padding:22px; box-shadow:none; border:1px solid var(--ui-line); border-radius:8px; }
.dense-ui .notes-board .note-card:hover { box-shadow:none; background:var(--ui-soft); transform:none; }
.dense-ui .note-card .ql-editor { color:var(--ui-ink); line-height:1.65; }
.dense-ui .note-card > div:last-child { border:0; padding-top:8px; }
.dense-ui .note-card [title="Prioritas Tinggi"] { color:#9f2f2d; }
.dense-ui .note-options-fields .note-pin-option { grid-column:1/-1; display:flex; align-items:center; gap:8px; padding-bottom:6px; }
.dense-ui .library-book-card > div:first-child { background:var(--ui-soft); }
.dense-ui .library-book-card > div:last-child { padding:18px; }
.dense-ui .library-book-card:hover { box-shadow:none; }
.dense-ui .library-action-grid button { border-radius:8px; background:var(--ui-soft); border-color:transparent; }
.dense-ui .service-empty { padding:28px 18px; }
.dense-ui kbd { font-family:'SF Mono',ui-monospace,monospace; font-size:11px; padding:2px 5px; border:1px solid var(--ui-line); border-radius:4px; background:var(--ui-soft); }
@media(prefers-reduced-motion:no-preference) {
 .dense-ui .primary-action:hover:not(:disabled) { transform:none; }
 .dense-ui .primary-action:active:not(:disabled) { transform:scale(.98); }
}
@media(max-width:767px) {
 .dense-ui .workspace-main { padding:20px 16px 28px; }
 .dense-ui .dense-dashboard .workspace-panel,.dense-ui .settings-field-section { padding:18px; }
 .dense-ui .overview-stats > div { padding:16px; }
 .dense-ui .services-page .service-metrics > :is(div,button) { padding:15px; }
 .dense-ui .notes-board .note-card { padding:18px; }
 .dense-ui .announcement-item { padding-block:18px; gap:12px; }
 .dense-ui .profile-identity { padding:18px; }
}

/* A single flow lets role-dependent widgets occupy the available dashboard width. */
.dense-ui .dashboard-widget-grid {
 display:flex; flex-wrap:wrap; gap:20px; align-items:flex-start;
}
.dense-ui .dashboard-widget-grid > * { flex:1 1 350px; min-width:0; max-width:100%; width:auto; }
.dense-ui .dashboard-widget-grid > .workspace-tasks { flex:1.5 1 520px; }
.dense-ui .overview-stats { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); }
.dense-ui .overview-stats > div:nth-child(3) { background:var(--ui-surface); border-color:var(--ui-line); }
.dense-ui .dense-dashboard .workspace-highlight > .grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,105px),1fr)); }
.dense-ui .dense-dashboard .workspace-highlight > .grid > div { border-radius:6px; }
.dense-ui .dense-dashboard .workspace-schedule {
 background:var(--ui-surface)!important; color:var(--ui-ink); border:1px solid var(--ui-line);
 border-radius:8px; box-shadow:none; --tw-ring-shadow:0 0 #0000;
}
.dense-ui .dense-dashboard .workspace-schedule > .p-5 { padding:22px; }
.dense-ui .dense-dashboard .workspace-schedule :is(h3,p,span) { color:inherit; }
.dense-ui .dense-dashboard .workspace-schedule h3 { font-size:15px; font-weight:600; text-transform:none; letter-spacing:0; }
.dense-ui .dense-dashboard .workspace-schedule button,
.dense-ui .dense-dashboard .workspace-schedule button:first-of-type { background:var(--ui-soft); color:var(--ui-ink); border:1px solid var(--ui-line); }
.dense-ui .dense-dashboard .workspace-schedule button:hover { border-color:var(--ui-accent); }
.dense-ui .dense-dashboard .workspace-schedule button iconify-icon { color:var(--ui-accent); }
.dense-ui .dense-dashboard .workspace-schedule h3 + p { color:var(--ui-secondary); }
.dense-ui .dense-dashboard .trend-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.dense-ui .workspace-sidebar .workspace-destination > iconify-icon:last-child { display:none; }
.dense-ui .workspace-sidebar :is(.workspace-destination,.workspace-home-link,.workspace-profile-link):hover,
.dense-ui .workspace-sidebar-sections button:hover { background:var(--ui-soft); }
@media(max-width:767px) {
 .dense-ui .dashboard-widget-grid { gap:16px; }
 .dense-ui .dense-dashboard .workspace-schedule > .p-5 { padding:18px; }
}

.dense-ui .dense-dashboard .workspace-schedule > .p-5 > div:first-child { flex-wrap:wrap; }
.dense-ui .dense-dashboard .workspace-schedule button > .w-px { background:var(--ui-line); }
.dense-ui .dense-dashboard .workspace-schedule button > span:last-child { background:var(--ui-accent-soft); color:var(--ui-accent); }

/* Keep creation actions with the dataset they affect. */
.dense-ui :is(.screen-akademik,.screen-keuangan) .dataset-toolbar-top { align-items:center; }
.dense-ui :is(.screen-akademik,.screen-keuangan) .dataset-toolbar > .dataset-actions { margin-left:auto; }
.dense-ui :is(.screen-akademik,.screen-keuangan) .dataset-actions > button { min-height:36px; padding:8px 14px; gap:7px; white-space:nowrap; }
.dense-ui :is(.screen-akademik,.screen-keuangan) .dataset-actions > button iconify-icon { flex-shrink:0; font-size:16px; }
.dense-ui .module-page-actions:empty { display:none; }
/* Separate comfortable text controls from compact, centered icon controls. */
.dense-ui .screen-library button.library-control { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; padding:8px 12px; width:auto; line-height:1.4; }
.dense-ui .screen-library button.library-control.w-full { width:100%; }
.dense-ui .screen-library button.library-icon-control { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:32px; min-height:32px; height:auto; padding:7px; line-height:1; flex-shrink:0; }
.dense-ui .screen-library button:is(.library-control,.library-icon-control) > iconify-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; font-size:16px; line-height:1; }
.dense-ui .screen-library .catalog-actions > div { flex-wrap:wrap; gap:8px; }
.dense-ui .screen-library .catalog-actions button.library-icon-control { min-width:30px; min-height:30px; padding:7px; }
@media(max-width:767px) {
 .dense-ui :is(.screen-akademik,.screen-keuangan) .dataset-toolbar > .dataset-actions { margin-left:0; flex-wrap:wrap; }
 .dense-ui .screen-keuangan .dataset-toolbar-top > .dataset-actions { justify-content:flex-start; }
}

/* Student file actions retain horizontal inset instead of the legacy text-link padding. */
.dense-ui .screen-mahasiswa .directory-tools > button {
 display:inline-flex; align-items:center; justify-content:center;
 min-height:36px; padding:8px 12px; gap:8px;
 border:1px solid var(--ui-line); border-radius:6px;
 font-size:12px; line-height:18px; white-space:nowrap;
}
.dense-ui .screen-mahasiswa .directory-tools > button > iconify-icon {
 display:inline-flex; flex-shrink:0; font-size:16px; line-height:1;
}
.dense-ui .screen-mahasiswa .directory-tools > button:hover { border-color:var(--ui-accent); }

/* Uniform note previews; full content remains available in the detail page. */
.dense-ui .notes-board { grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); grid-auto-rows:300px; align-items:stretch; grid-auto-flow:row; }
.dense-ui .notes-board .note-card { height:100%; overflow:hidden; }
.dense-ui .notes-board .note-card > div:first-child { flex-shrink:0; }
.dense-ui .notes-board .note-card h3 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex-shrink:0; }
.dense-ui .notes-board .note-card .ql-editor { min-height:0; flex:1 1 0; overflow:hidden; }
.dense-ui .notes-board .note-card > div:last-child { margin-top:auto; flex-shrink:0; }
