/* HADIRIYA v0.19.51 — login UI bundle; source order preserved */

/* BEGIN adaptive-polish-v01941.css */
/* HADIRIYA v0.19.41 — Adaptive Workspace UI/UX Tahap 4: Finishing & Polish */

:root{
  --hadiriya-focus-ring:color-mix(in srgb,var(--primary) 72%,#fff);
  --hadiriya-soft-shadow:0 10px 28px rgba(15,23,42,.075);
  --hadiriya-toast-shadow:0 18px 46px rgba(15,23,42,.16);
  --hadiriya-motion-fast:120ms;
  --hadiriya-motion-normal:180ms;
}

/* Micro-interaction yang tenang dan konsisten */
.button,.icon-button,.mobile-menu,.sidebar-collapse,.adaptive-sync-info,.context-info-button,.workspace-card,.operational-shortcuts>a,.nav-link,.mobile-bottom-item{
  transition:transform var(--hadiriya-motion-fast) ease,background-color var(--hadiriya-motion-normal) ease,border-color var(--hadiriya-motion-normal) ease,color var(--hadiriya-motion-normal) ease,box-shadow var(--hadiriya-motion-normal) ease,opacity var(--hadiriya-motion-normal) ease;
}
.button:not([disabled]):active,.icon-button:not([disabled]):active,.mobile-menu:active,.sidebar-collapse:active,.adaptive-sync-info:active,.context-info-button:active,.workspace-card:active,.operational-shortcuts>a:active,.mobile-bottom-item:active{transform:translateY(1px) scale(.985)}
.button.secondary:hover,.icon-button:hover,.context-info-button:hover{border-color:color-mix(in srgb,var(--primary) 22%,var(--line));background:color-mix(in srgb,var(--primary) 5%,var(--surface-2))}
.workspace-card:hover,.operational-shortcuts>a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 20%,var(--line));box-shadow:var(--hadiriya-soft-shadow)}

/* Focus state: terlihat jelas untuk keyboard, tidak berisik untuk pointer */
.keyboard-navigation a:focus-visible,.keyboard-navigation button:focus-visible,.keyboard-navigation summary:focus-visible,.keyboard-navigation input:focus-visible,.keyboard-navigation select:focus-visible,.keyboard-navigation textarea:focus-visible,
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid color-mix(in srgb,var(--hadiriya-focus-ring) 72%,transparent)!important;
  outline-offset:2px!important;
}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)!important}

/* Tap target: kontrol kecil tetap tampak compact, hit-area lebih aman */
.icon-button,.mobile-menu,.sidebar-collapse,.context-info-button,.adaptive-sync-info,.api-copy-button{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
.button.small{min-height:36px}
.ui-action-menu>summary{min-width:38px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}

/* Feedback proses / loading */
.form-is-pending{cursor:progress}
.form-is-pending .is-pending,.button.is-pending,.icon-button.is-pending,a.is-pending{pointer-events:none;cursor:progress;opacity:.76}
.button.is-pending:before,.icon-button.is-pending:before,a.button.is-pending:before{
  content:"";width:13px;height:13px;flex:0 0 13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:hadiriya-spin .72s linear infinite
}
.ui-route-progress{position:fixed;z-index:10050;left:0;top:0;width:100%;height:3px;pointer-events:none;opacity:0;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#fff));box-shadow:0 1px 8px color-mix(in srgb,var(--primary) 30%,transparent)}
.ui-route-progress.is-active{opacity:1;animation:hadiriya-route-progress 8s cubic-bezier(.2,.7,.25,1) forwards}
@keyframes hadiriya-route-progress{0%{transform:scaleX(.04)}15%{transform:scaleX(.34)}55%{transform:scaleX(.68)}100%{transform:scaleX(.86)}}
@keyframes hadiriya-spin{to{transform:rotate(360deg)}}

/* Skeleton/loading state untuk area yang benar-benar sedang memuat */
.ui-loading-state{position:relative;overflow:hidden!important;isolation:isolate}
.ui-loading-state:before{content:"";display:block;width:min(210px,72%);height:9px;margin:4px auto 9px;border-radius:999px;background:color-mix(in srgb,var(--line) 72%,transparent)}
.ui-loading-state:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,color-mix(in srgb,var(--surface) 72%,#fff) 48%,transparent 66%);transform:translateX(-100%);animation:hadiriya-shimmer 1.25s ease-in-out infinite}
@keyframes hadiriya-shimmer{to{transform:translateX(100%)}}

/* Toast untuk flash hasil aksi. Alert informatif di dalam halaman tidak dipindahkan. */
.ui-toast-region{position:fixed;z-index:10040;top:max(12px,env(safe-area-inset-top));right:14px;width:min(390px,calc(100vw - 28px));display:grid;gap:9px;pointer-events:none}
.system-flash-toast{pointer-events:auto;margin:0!important;align-items:center!important;min-height:52px;padding:11px 11px 11px 13px!important;border-radius:15px!important;box-shadow:var(--hadiriya-toast-shadow);backdrop-filter:saturate(140%) blur(16px);-webkit-backdrop-filter:saturate(140%) blur(16px);animation:hadiriya-toast-in .22s ease-out both}
.system-flash-toast .ui-toast-message{min-width:0;flex:1;line-height:1.42}
.ui-toast-close{flex:0 0 auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:currentColor;font-size:19px;cursor:pointer;opacity:.7}
.ui-toast-close:hover,.ui-toast-close:focus-visible{background:rgba(127,127,127,.11);opacity:1}
.system-flash-toast.is-leaving{animation:hadiriya-toast-out .18s ease-in both}
@keyframes hadiriya-toast-in{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes hadiriya-toast-out{to{opacity:0;transform:translateY(-5px) scale(.985)}}

/* Densitas data: tetap ringkas tanpa mengorbankan keterbacaan */
@media(min-width:761px){
  .table-wrap table:not(.report-detail-table) th,.table-wrapper table:not(.report-detail-table) th{padding-top:9px!important;padding-bottom:9px!important}
  .table-wrap table:not(.report-detail-table) td,.table-wrapper table:not(.report-detail-table) td{padding-top:9px!important;padding-bottom:9px!important;line-height:1.38}
  .table-wrap .button.small,.table-wrapper .button.small{min-height:34px;padding:6px 9px}
}

/* Login ikut mendapat finishing visual tanpa mengubah alur autentikasi */
.login-card{box-shadow:0 22px 65px rgba(15,23,42,.12)!important;border-color:color-mix(in srgb,var(--line) 88%,transparent)!important}
.login-card input{min-height:45px}
.login-card .button{min-height:45px}

/* Coarse pointer/mobile: area sentuh minimal mendekati 44 px */
@media(pointer:coarse){
  .icon-button,.mobile-menu,.sidebar-collapse,.context-info-button,.adaptive-sync-info,.api-copy-button,.ui-action-menu>summary{min-width:44px!important;min-height:44px!important}
  .button.small{min-height:42px}
  select,input:not([type="checkbox"]):not([type="radio"]),textarea{min-height:44px}
}

@media(max-width:760px){
  .ui-toast-region{left:9px;right:9px;top:max(8px,env(safe-area-inset-top));width:auto}
  .system-flash-toast{border-radius:14px!important}
  .workspace-card:hover,.operational-shortcuts>a:hover{transform:none;box-shadow:none}
  .table.mobile-cards td>.actions .button.small{min-height:42px}
}

@media(prefers-reduced-motion:reduce){
  .button,.icon-button,.mobile-menu,.sidebar-collapse,.adaptive-sync-info,.context-info-button,.workspace-card,.operational-shortcuts>a,.nav-link,.mobile-bottom-item{transition:none!important}
  .button:not([disabled]):active,.icon-button:not([disabled]):active,.workspace-card:active,.mobile-bottom-item:active{transform:none!important}
  .button.is-pending:before,.icon-button.is-pending:before,a.button.is-pending:before,.ui-loading-state:after,.ui-route-progress.is-active,.system-flash-toast,.system-flash-toast.is-leaving{animation:none!important}
  .ui-route-progress.is-active{opacity:1;transform:scaleX(.72)}
}

@media(prefers-contrast:more){
  .card,.workspace-card,.table-wrap,.table-wrapper,.button.secondary,.icon-button,input,select,textarea{border-color:color-mix(in srgb,var(--text) 42%,var(--line))!important}
  .nav-link.active,.mobile-bottom-item.active{outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:-2px}
}

@media print{
  .ui-toast-region,.ui-route-progress{display:none!important}
  .button.is-pending:before,.icon-button.is-pending:before{display:none!important}
}

/* END adaptive-polish-v01941.css */

/* BEGIN adaptive-convergence-v01942.css */
/* HADIRIYA v0.19.42 — Adaptive Workspace UI/UX Tahap 5: Final Convergence
   Menyatukan sisa pola legacy tanpa mengubah alur bisnis, route, permission, atau data. */

:root{
  --hadiriya-converged-radius:15px;
  --hadiriya-converged-soft:color-mix(in srgb,var(--surface-2) 66%,var(--surface));
  --hadiriya-converged-line:color-mix(in srgb,var(--line) 88%,transparent);
}

/* Satu ritme heading untuk card-header / section-heading / ui-section-head */
.card-header,.section-heading,.ui-section-head,.ui-converged-heading{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0
}
.card-header>div:first-child,.section-heading>div:first-child,.ui-section-head>div:first-child,.ui-converged-heading>div:first-child{min-width:0}
.card-header h2,.card-header h3,.section-heading h2,.section-heading h3,.ui-section-head h2,.ui-section-head h3{
  margin:0;line-height:1.24;letter-spacing:-.014em
}
.card-header p,.section-heading p,.ui-section-head p{
  max-width:720px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.48
}
.card-header>.actions,.section-heading>.actions,.ui-section-head>.actions{flex:0 0 auto;justify-content:flex-end}

/* Kartu legacy dan kartu modern harus terasa berasal dari shell yang sama */
.content .card:not(.workspace-card),.ui-section-card{
  border-color:var(--hadiriya-converged-line)!important;
}
.content .card>.card-header:first-child,.content .card>.section-heading:first-child{
  padding-bottom:11px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);margin-bottom:12px
}
.content .card>.card-header:first-child:last-child,.content .card>.section-heading:first-child:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}

/* Alert: hierarki status seragam, tidak menambah ikon dekoratif yang berisik */
.alert{border-radius:13px!important;line-height:1.48}
.alert.info{border-left:3px solid color-mix(in srgb,#2563eb 72%,var(--line))!important}
.alert.success{border-left:3px solid color-mix(in srgb,#16a34a 72%,var(--line))!important}
.alert.warning{border-left:3px solid color-mix(in srgb,#d97706 76%,var(--line))!important}
.alert.danger{border-left:3px solid color-mix(in srgb,#dc2626 76%,var(--line))!important}

/* Semua pembungkus tabel memakai perilaku fokus/scroll yang sama */
.table-wrap,.table-wrapper{
  position:relative;scrollbar-gutter:stable;scroll-behavior:smooth
}
.table-wrap.ui-table-region,.table-wrapper.ui-table-region{scroll-margin-top:78px}
.table-wrap.has-horizontal-overflow,.table-wrapper.has-horizontal-overflow{
  box-shadow:inset -14px 0 15px -16px color-mix(in srgb,var(--text) 42%,transparent)
}
.table-wrap table,.table-wrapper table{font-variant-numeric:tabular-nums}
.table-wrap th,.table-wrapper th{letter-spacing:.005em}
.table-wrap td,.table-wrapper td{overflow-wrap:anywhere}
.table-wrap td[data-label="Aksi"],.table-wrapper td[data-label="Aksi"]{overflow-wrap:normal}

/* Empty state legacy/baru satu bahasa visual */
.empty-state,.ui-empty,td.empty,.adaptive-empty-inline{border-radius:13px}
.empty-state h2,.empty-state h3,.ui-empty h2,.ui-empty h3{margin:0;color:var(--text)}
.empty-state p,.ui-empty p{color:var(--muted)}

/* Details legacy menjadi panel disclosure yang konsisten */
.content details:not(.user-menu):not(.ui-action-menu):not(.ui-filter-panel):not(.adaptive-sync-dialog){
  border-radius:13px
}
.content details>summary{scroll-margin-top:76px}
.content details>summary::marker{color:var(--muted)}

/* Form/action alignment final */
.form-actions,.filter-actions,.ui-section-actions,.dialog-actions,.adaptive-sync-dialog-actions{min-width:0}
.user-menu-logout-form{margin:0}
.login-divider{position:relative;margin:15px 0 11px;text-align:center;color:var(--muted,#64748b);font-size:11px;line-height:1.4}
.login-divider:before,.login-divider:after{content:"";display:inline-block;width:22%;height:1px;margin:0 9px 3px;background:var(--line,#e2e8f0);vertical-align:middle}

/* Action bar pada mobile tidak saling berhimpit */
@media(max-width:760px){
  .card-header,.section-heading,.ui-section-head,.ui-converged-heading{gap:9px;flex-wrap:wrap}
  .card-header>.actions,.section-heading>.actions,.ui-section-head>.actions{width:100%;justify-content:flex-start}
  .card-header>.actions>.button,.section-heading>.actions>.button,.ui-section-head>.actions>.button{flex:1 1 132px}
  .table-wrap.has-horizontal-overflow,.table-wrapper.has-horizontal-overflow{border:1px solid var(--hadiriya-converged-line);overflow:auto}
  .table-wrap.has-horizontal-overflow table:not(.mobile-cards),.table-wrapper.has-horizontal-overflow table:not(.mobile-cards){min-width:max-content}
  .ui-table-scroll-cue{display:inline-flex;position:sticky;left:100%;z-index:3;align-items:center;gap:4px;margin:0 7px 5px 0;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--muted);font-size:9.5px;white-space:nowrap;pointer-events:none;box-shadow:0 4px 12px rgba(15,23,42,.06)}
  .login-divider:before,.login-divider:after{width:18%}
}

@media(min-width:761px){.ui-table-scroll-cue{display:none!important}}

@media(prefers-reduced-motion:reduce){.table-wrap,.table-wrapper{scroll-behavior:auto}}

@media print{
  .ui-table-scroll-cue{display:none!important}
  .content .card>.card-header:first-child,.content .card>.section-heading:first-child{border-bottom-color:#d1d5db}
}

/* END adaptive-convergence-v01942.css */
