/* ALPHA DESIGN ERP Cloud v4.8.0 — Modern Workspace & Data UX refinement */
/* Core typography + visual hierarchy */
body{background:var(--alpha-canvas)!important;color:var(--alpha-text)!important;font-family:Inter,"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:-.004em}
.main{background:var(--alpha-canvas)!important;transition:padding-right .2s ease}
.content{max-width:1680px;margin-inline:auto;padding-inline:clamp(16px,2.1vw,32px)!important;padding-bottom:40px!important}
.global-header,.page-toolbar{border-color:var(--alpha-line)!important}
.page-toolbar{box-shadow:0 1px 0 var(--alpha-line),0 10px 30px rgba(23,32,42,.025)!important}
.page-heading h1,.section-header h2,.section-header h3,.report-title h3{color:var(--alpha-text)!important}
.page-heading p,.section-header p,.report-title p,.muted{color:var(--alpha-text-muted)!important}
.card,.kpi-card,.feature-tile,.admin-card,.security-card,.cloud-card,.settings-card{background:var(--alpha-surface)!important;border-color:var(--alpha-line)!important;box-shadow:var(--alpha-shadow-sm)!important}
.card:hover{border-color:var(--alpha-line-strong)!important;box-shadow:var(--alpha-shadow-md)!important}

/* 8px spacing rhythm */
.grid{gap:16px!important}
.section{margin-top:24px!important}
.card-pad{padding:24px!important}
.section-header{gap:16px!important;margin-bottom:16px!important}
.table-tools{gap:8px!important;padding:12px 16px!important}
.form-grid{gap:16px!important}
.field{gap:8px!important}

/* Accounting semantic colors */
.badge.success,.badge.positive,.trend-up,.cell-positive{color:var(--alpha-income)!important;background:var(--alpha-income-soft)!important}
.badge.danger,.badge.negative,.trend-down,.cell-danger{color:var(--alpha-expense)!important;background:var(--alpha-expense-soft)!important}
.badge.warning,.cell-warning{color:var(--alpha-pending)!important;background:var(--alpha-pending-soft)!important}

/* Adaptive two-level sidebar */
.sidebar{background:var(--alpha-surface)!important;border-color:var(--alpha-line)!important}
.nav{gap:4px!important}
.nav-group{border-radius:14px;padding:4px!important;transition:background .15s ease}
.nav-group.is-open{background:var(--alpha-surface-subtle)!important}
.nav-group-toggle{min-height:36px!important;border-radius:10px!important;color:var(--alpha-text-muted)!important}
.nav-group-toggle:hover{background:var(--alpha-brand-50)!important;color:var(--alpha-brand-800)!important}
.nav-item{min-height:44px!important;border-radius:10px!important;color:var(--alpha-text-muted)!important}
.nav-item:hover{background:var(--alpha-brand-50)!important;color:var(--alpha-brand-800)!important}
.nav-item.active{background:var(--alpha-brand-100)!important;color:var(--alpha-brand-800)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--alpha-brand-700) 20%,transparent)!important}
.nav-item.active::before{background:var(--alpha-brand-700)!important}
.sidebar.collapsed .nav-group{padding:2px!important;background:transparent!important}
.sidebar.collapsed .nav-group-toggle{display:none!important}
.sidebar.collapsed .nav-group-items{display:block!important}
.sidebar.collapsed .nav-item{margin-block:4px!important}

/* Command palette */
#alphaCommandBackdrop{position:fixed;inset:0;z-index:490;background:rgba(15,23,42,.42);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .16s ease}
body.alpha-command-open #alphaCommandBackdrop{opacity:1;pointer-events:auto}
body.alpha-command-open{overflow:hidden}
body.alpha-command-open .global-search-wrap{position:fixed!important;top:min(13vh,116px);left:50%;transform:translateX(-50%);z-index:500;width:min(720px,calc(100vw - 32px))!important;height:54px!important;border-radius:16px!important;border-color:var(--alpha-line-strong)!important;background:var(--alpha-surface)!important;box-shadow:0 28px 90px rgba(15,23,42,.28)!important;padding-inline:16px!important}
body.alpha-command-open .global-search-wrap input{font-size:15px!important;color:var(--alpha-text)!important}
body.alpha-command-open .global-search-wrap kbd{font-size:10px!important}
body.alpha-command-open #searchResults{display:block!important;top:62px!important;left:0!important;right:0!important;max-height:min(58vh,520px)!important;overflow:auto!important;border:1px solid var(--alpha-line)!important;border-radius:16px!important;background:var(--alpha-surface)!important;box-shadow:0 22px 70px rgba(15,23,42,.22)!important;padding:8px!important}
body.alpha-command-open #searchResults.hidden{display:block!important}
.search-result{min-height:58px!important;border-radius:11px!important;padding:10px 12px!important;color:var(--alpha-text)!important}
.search-result:hover,.search-result.alpha-command-active{background:var(--alpha-brand-50)!important;color:var(--alpha-brand-800)!important}
.search-result small{color:var(--alpha-text-muted)!important}
.alpha-command-hint{padding:20px 18px;color:var(--alpha-text-muted);font-size:12px;line-height:1.65}
.alpha-command-hint strong{display:block;color:var(--alpha-text);font-size:14px;margin-bottom:4px}

/* Contextual side panel */
#alphaContextPanel{position:fixed;z-index:420;top:0;right:0;width:var(--alpha-context-width);height:100dvh;transform:translateX(102%);transition:transform .2s ease;background:var(--alpha-surface);border-left:1px solid var(--alpha-line);box-shadow:-20px 0 50px rgba(15,23,42,.12);display:flex;flex-direction:column;color:var(--alpha-text)}
body.alpha-context-open #alphaContextPanel{transform:translateX(0)}
body.alpha-context-open .main{padding-right:var(--alpha-context-width)}
.alpha-context-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--alpha-line);background:var(--alpha-surface)}
.alpha-context-header span{display:block;margin-bottom:5px;color:var(--alpha-brand-700);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.alpha-context-header h2{margin:0;font-size:17px;line-height:1.25;letter-spacing:-.02em}
.alpha-context-header p{margin:6px 0 0;color:var(--alpha-text-muted);font-size:11px}
.alpha-context-close{width:36px;height:36px;border:1px solid var(--alpha-line);border-radius:10px;background:var(--alpha-surface-subtle);color:var(--alpha-text);font-size:18px}
.alpha-context-body{flex:1;overflow:auto;padding:16px 20px 24px}
.alpha-context-section{padding:14px 0;border-bottom:1px solid var(--alpha-line)}
.alpha-context-section:last-child{border-bottom:0}
.alpha-context-section h3{margin:0 0 10px;font-size:11px;letter-spacing:.02em}
.alpha-context-fields{display:grid;gap:8px}
.alpha-context-field{display:grid;grid-template-columns:minmax(110px,.85fr) minmax(0,1.15fr);gap:12px;align-items:start;padding:8px 0}
.alpha-context-field dt{color:var(--alpha-text-muted);font-size:10px;line-height:1.45}
.alpha-context-field dd{margin:0;color:var(--alpha-text);font-size:11px;line-height:1.45;text-align:right;overflow-wrap:anywhere}
.alpha-context-audit{padding:12px;border:1px dashed var(--alpha-line-strong);border-radius:10px;background:var(--alpha-surface-subtle);color:var(--alpha-text-muted);font-size:10.5px;line-height:1.55}
.alpha-context-actions{display:flex;gap:8px;margin-top:12px}
.alpha-context-action{flex:1;min-height:36px;border:1px solid var(--alpha-line);border-radius:9px;background:var(--alpha-surface);color:var(--alpha-text);font-size:10.5px;font-weight:650}
.alpha-context-action:hover{background:var(--alpha-brand-50);color:var(--alpha-brand-800)}
#alphaContextBackdrop{display:none;position:fixed;inset:0;z-index:410;background:rgba(15,23,42,.32)}

/* Keyboard-first forms */
.modal-form.alpha-keyboard-form .field input:not([type="checkbox"]):not([type="radio"]),.modal-form.alpha-keyboard-form .field select,.modal-form.alpha-keyboard-form .field textarea{min-height:44px!important;border-color:var(--alpha-line)!important;color:var(--alpha-text)!important;background:var(--alpha-surface)!important}
.modal-form.alpha-keyboard-form .field input:focus,.modal-form.alpha-keyboard-form .field select:focus,.modal-form.alpha-keyboard-form .field textarea:focus{border-color:var(--alpha-brand-700)!important;box-shadow:var(--alpha-focus)!important}
.alpha-keyboard-help{grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px;padding:8px 0;color:var(--alpha-text-muted);font-size:9.5px}
.alpha-keyboard-help kbd{padding:2px 5px;border:1px solid var(--alpha-line);border-bottom-color:var(--alpha-line-strong);border-radius:5px;background:var(--alpha-surface-subtle);color:var(--alpha-text);font-size:9px}

/* Skeleton + zero state */
.alpha-loading-state{position:relative;overflow:hidden!important;min-height:96px!important;padding:18px!important;color:transparent!important;border-radius:12px;background:var(--alpha-surface-subtle)!important}
.alpha-loading-state::before{content:"";display:block;width:100%;height:62px;border-radius:9px;background:linear-gradient(90deg,var(--alpha-zinc-100) 20%,#fff 36%,var(--alpha-zinc-100) 52%);background-size:240% 100%;animation:alphaSkeleton 1.25s ease-in-out infinite}
html[data-theme="dark"] .alpha-loading-state::before{background:linear-gradient(90deg,#1b2631 20%,#2a3947 36%,#1b2631 52%);background-size:240% 100%}
.alpha-zero-state{min-height:112px!important;display:grid!important;place-items:center;text-align:center;padding:24px!important;border:1px dashed var(--alpha-line-strong)!important;border-radius:12px!important;background:var(--alpha-surface-subtle)!important;color:var(--alpha-text-muted)!important}
.alpha-zero-state::before{content:"◇";display:block;color:var(--alpha-brand-700);font-size:22px;margin-bottom:7px}
@keyframes alphaSkeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* Dashboard modular widgets */
.alpha-widget-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:8px 0 12px;position:relative}
.alpha-widget-button{min-height:34px;padding:7px 10px;border:1px solid var(--alpha-line);border-radius:9px;background:var(--alpha-surface);color:var(--alpha-text-muted);font-size:10.5px;font-weight:650}
.alpha-widget-button:hover,.alpha-widget-button[aria-expanded="true"]{background:var(--alpha-brand-50);color:var(--alpha-brand-800)}
.alpha-widget-menu{position:absolute;right:0;top:40px;z-index:90;width:280px;padding:8px;border:1px solid var(--alpha-line);border-radius:12px;background:var(--alpha-surface);box-shadow:var(--alpha-shadow-md)}
.alpha-widget-menu[hidden]{display:none!important}
.alpha-widget-menu label{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 8px;border-radius:8px;color:var(--alpha-text);font-size:10.5px}
.alpha-widget-menu label:hover{background:var(--alpha-surface-subtle)}
.alpha-widget-menu input{accent-color:var(--alpha-brand-700)}
.executive-kpi-grid>.kpi-card[draggable="true"]{cursor:grab}
.executive-kpi-grid>.kpi-card.alpha-widget-dragging{opacity:.48;transform:scale(.985)}
.alpha-chart-periods{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:wrap}
.alpha-chart-periods button{min-height:28px;padding:5px 7px;border:1px solid var(--alpha-line);border-radius:8px;background:var(--alpha-surface);color:var(--alpha-text-muted);font-size:9px;font-weight:700}
.alpha-chart-periods button:hover{background:var(--alpha-brand-50);color:var(--alpha-brand-800)}
.chart-card .section-header{align-items:flex-start!important}
.dashboard-chart-heading{gap:10px;flex-wrap:wrap}
/* inline-flex chu khong phai flex: trong mot khoi van ban (vi du dong ghi chu o trang Dong
   tien) thi hop flex la khoi cap block nen no gian het chieu ngang trang — dai va rong bat
   thuong. Khi nam trong mot flex container thi display bi blockify, nen doi sang inline-flex
   khong lam thay doi cac cho dang dung. */
.dashboard-scope-switch{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:3px;border:1px solid var(--alpha-line);border-radius:10px;background:color-mix(in srgb,var(--alpha-surface) 92%,var(--alpha-brand-50))}
.dashboard-scope-switch button{min-height:27px;padding:4px 8px;border:0;border-radius:7px;background:transparent;color:var(--alpha-text-muted);font-size:9px;font-weight:750;white-space:nowrap;cursor:pointer}
.dashboard-scope-switch button:hover{background:var(--alpha-brand-50);color:var(--alpha-brand-800)}
.dashboard-scope-switch button[aria-pressed="true"]{background:var(--alpha-brand-100);color:var(--alpha-brand-800);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--alpha-brand-700) 25%,transparent)}
.dashboard-scope-warning{margin:0 0 8px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--alpha-warning,#d97706) 28%,var(--alpha-line));border-radius:8px;background:color-mix(in srgb,var(--alpha-warning,#d97706) 7%,var(--alpha-surface));font-size:9px;line-height:1.35;color:var(--alpha-text-muted)}
.bar[title],.donut-row{cursor:help}

/* Responsive behavior */
@media(max-width:1280px){
  body.alpha-context-open .main{padding-right:0}
  #alphaContextBackdrop{display:block;opacity:0;pointer-events:none;transition:opacity .2s ease}
  body.alpha-context-open #alphaContextBackdrop{opacity:1;pointer-events:auto}
}
@media(max-width:820px){
  :root{--alpha-context-width:min(92vw,390px)}
  .content{padding-inline:12px!important}
  .card-pad{padding:16px!important}
  .table-tools{padding:10px 12px!important;align-items:stretch!important}
  .alpha-chart-periods{width:100%;margin-left:0;margin-top:8px}
  .alpha-chart-periods button{flex:1}
  .dashboard-scope-switch{width:100%;margin-left:0}
  .dashboard-scope-switch button{flex:1}
}
@media(max-width:560px){
  body.alpha-command-open .global-search-wrap{top:72px!important;width:calc(100vw - 20px)!important}
  .alpha-context-field{grid-template-columns:1fr;gap:3px}
  .alpha-context-field dd{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  #alphaCommandBackdrop,#alphaContextPanel,#alphaContextBackdrop,.main{transition:none!important}
  .alpha-loading-state::before{animation:none!important}
}


/* Rich, non-blocking financial chart tooltip. */
#alphaChartTooltip{position:fixed;z-index:2600;max-width:320px;padding:8px 10px;border:1px solid var(--alpha-border-strong);border-radius:10px;background:var(--alpha-surface-strong);color:var(--alpha-text);box-shadow:0 12px 32px rgba(15,23,42,.18);font-size:12px;line-height:1.45;font-variant-numeric:tabular-nums;pointer-events:none;opacity:0;transform:translate3d(0,4px,0);transition:opacity .12s ease,transform .12s ease}
#alphaChartTooltip[data-open="true"]{opacity:1;transform:translate3d(0,0,0)}
#alphaChartTooltip[data-open="false"]{visibility:hidden}
html[data-theme="dark"] #alphaChartTooltip{box-shadow:0 16px 36px rgba(0,0,0,.4)}

/* --------------------------------------------------------------------------
   Phase 2 — operational UX refinement
   Keeps canonical router/data contracts intact; presentation + interaction only.
   -------------------------------------------------------------------------- */

/* Accessible focus language across the new workspace layer. */
.alpha-widget-button:focus-visible,.alpha-context-action:focus-visible,.alpha-context-close:focus-visible,
.alpha-chart-periods button:focus-visible,.search-result:focus-visible,.executive-kpi-grid>.kpi-card:focus-visible{
  outline:0!important;box-shadow:var(--alpha-focus)!important;border-color:var(--alpha-brand-700)!important
}

/* Command palette: separate guidance, recent destinations and live results. */
body.alpha-command-open #searchResults{scroll-padding-block:8px}
.alpha-command-hint{border-bottom:1px solid var(--alpha-line);margin:0 4px 5px;padding:14px 14px 15px}
.alpha-command-section{padding:5px 4px 8px}
.alpha-command-section+.alpha-command-section{border-top:1px solid var(--alpha-line);padding-top:9px}
.alpha-command-section-title{padding:6px 10px;color:var(--alpha-text-muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.alpha-command-shortcut small{display:block;margin-top:3px}
.search-result.alpha-command-active{outline:1px solid color-mix(in srgb,var(--alpha-brand-700) 34%,transparent)}

/* Financial forms: numeric scanability + visible completion without changing values. */
.modal-form.alpha-keyboard-form .alpha-financial-input,.drawer-form.alpha-keyboard-form .alpha-financial-input{
  text-align:right!important;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1;letter-spacing:.005em
}
.modal-form.alpha-keyboard-form .field:has([required]) label::after,.drawer-form.alpha-keyboard-form .field:has([required]) label::after{content:" •";color:var(--alpha-expense);font-weight:900}
.alpha-keyboard-help{align-items:center;flex-wrap:wrap;border:1px solid var(--alpha-line);border-radius:10px;background:var(--alpha-surface-subtle);padding:8px 10px!important}
.alpha-form-completion{margin-right:auto;padding:4px 7px;border-radius:999px;background:var(--alpha-pending-soft);color:var(--alpha-pending);font-weight:750;font-variant-numeric:tabular-nums}
.alpha-form-completion[data-complete="true"]{background:var(--alpha-income-soft);color:var(--alpha-income)}
.form-section-card{border-color:var(--alpha-line)!important;background:var(--alpha-surface)!important;box-shadow:none!important}
.form-section-heading{border-color:var(--alpha-line)!important;background:var(--alpha-surface-subtle)!important}
.form-section-heading strong{color:var(--alpha-text)!important;letter-spacing:.025em!important}
.form-section-heading small{color:var(--alpha-text-muted)!important}
.form-live-summary{border-color:var(--alpha-line)!important;background:linear-gradient(135deg,var(--alpha-brand-50),var(--alpha-surface))!important}
.form-live-summary>div{border-color:var(--alpha-line)!important;background:color-mix(in srgb,var(--alpha-surface) 88%,transparent)!important}
.form-live-summary strong{color:var(--alpha-brand-800)!important;font-variant-numeric:tabular-nums lining-nums}

/* Context panel: clear keyboard focus and less visual pressure. */
#alphaContextPanel:focus{outline:0}
#alphaContextPanel:focus-visible{box-shadow:-20px 0 50px rgba(15,23,42,.12),inset 3px 0 var(--alpha-brand-700)}
.alpha-context-field dd{font-variant-numeric:tabular-nums lining-nums}
.alpha-context-body{scrollbar-gutter:stable}

/* Dashboard: drag-and-keyboard affordance, clearer period state. */
.executive-kpi-grid>.kpi-card[tabindex="0"]{transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.executive-kpi-grid>.kpi-card[tabindex="0"]:focus-visible{box-shadow:var(--alpha-shadow-md),var(--alpha-focus)!important}
.alpha-chart-periods button[aria-pressed="true"]{background:var(--alpha-brand-100);border-color:color-mix(in srgb,var(--alpha-brand-700) 35%,var(--alpha-line));color:var(--alpha-brand-800)}
.chart-card [tabindex="0"]:focus-visible,.donut-row[tabindex="0"]:focus-visible{outline:2px solid var(--alpha-brand-700);outline-offset:2px}

/* Correct token aliases for the tooltip and improve keyboard legibility. */
#alphaChartTooltip{border-color:var(--alpha-border-strong);background:var(--alpha-surface-strong)}

/* Touch layouts: prefer card scanning for auto-mode tables and preserve controls. */
@media(max-width:820px){
  .alpha-context-actions{position:sticky;bottom:0;padding-top:10px;background:linear-gradient(180deg,transparent,var(--alpha-surface) 30%)}
  .alpha-context-action,.alpha-context-close{min-height:44px}
  .alpha-keyboard-help{justify-content:flex-start}
}
@media(max-width:640px){
  .alpha-widget-toolbar{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}
  .alpha-widget-toolbar::-webkit-scrollbar{display:none}
}
@media(max-width:480px){
  .alpha-keyboard-help span:not(.alpha-form-completion){display:none}
  .alpha-form-completion{margin-right:0}
  .alpha-context-header{padding:16px}
  .alpha-context-body{padding:12px 16px 20px}
}
@media(forced-colors:active){
  .search-result.alpha-command-active,.alpha-chart-periods button[aria-pressed="true"]{outline:2px solid CanvasText!important}
}
