/*
 * COREDESK system polish
 * Final shared presentation layer for authenticated government screens.
 * It standardizes hierarchy, rhythm, controls, tables and accessibility
 * without changing page logic, permissions or data flow.
 */

:root{
  --cd-surface-0:#061521;
  --cd-surface-1:#0a2031;
  --cd-surface-2:#0d293d;
  --cd-surface-soft:rgba(255,255,255,.032);
  --cd-border:rgba(202,218,232,.115);
  --cd-border-strong:rgba(211,181,99,.30);
  --cd-text:#f4f8fb;
  --cd-text-soft:#c2cfda;
  --cd-muted:#91a5b5;
  --cd-accent:#d3b563;
  --cd-focus:#7dd6ef;
  --cd-success:#54bd88;
  --cd-warning:#dfa953;
  --cd-danger:#d96772;
  --cd-radius-card:18px;
  --cd-radius-control:10px;
  --cd-control-height:44px;
  --cd-section-gap:16px;
  --cd-shadow:0 14px 34px rgba(0,0,0,.16);
}

body.gov-body:not(.gov-login-page){
  color:var(--cd-text);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

body.gov-body:not(.gov-login-page) .gov-main{
  gap:var(--cd-section-gap);
  padding-block-end:38px;
}

/* Clear hierarchy and readable Arabic copy. */
body.gov-body:not(.gov-login-page) :where(h1,h2,h3,h4){
  color:var(--cd-text);
  text-wrap:balance;
  letter-spacing:0;
}
body.gov-body:not(.gov-login-page) :where(p,li,dd,td,label,small,span){
  line-height:1.72;
}
body.gov-body:not(.gov-login-page) :where(p,.gov-muted){
  color:var(--cd-text-soft);
}
body.gov-body:not(.gov-login-page) :where(.gov-card,.gov-stat,.gov-module-card,.gov-control-card) :where(h1,h2,h3,h4,p,b,strong,span,small,em,li,dt,dd,label,a){
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Calm surfaces; depth comes from borders and spacing, not heavy effects. */
body.gov-body:not(.gov-login-page) :where(.gov-card,.gov-stat){
  border-color:var(--cd-border);
  border-radius:var(--cd-radius-card);
  background:linear-gradient(155deg,rgba(13,38,56,.96),rgba(8,27,42,.94));
  box-shadow:var(--cd-shadow);
}
body.gov-body:not(.gov-login-page) .gov-card{
  padding:18px;
}
body.gov-body:not(.gov-login-page) .gov-grid{
  gap:12px;
  align-items:stretch;
}
body.gov-body:not(.gov-login-page) .gov-grid>*,
body.gov-body:not(.gov-login-page) :where(.gov-info-grid,.gov-quick-panel,.gov-policy-list,.gov-monitor-layout)>*{
  min-width:0;
  height:100%;
}

body.gov-body:not(.gov-login-page) .gov-section-title{
  margin:22px 0 10px;
  gap:14px;
  align-items:flex-end;
}
body.gov-body:not(.gov-login-page) .gov-section-title.compact{
  margin:0 0 14px;
  align-items:flex-start;
}
body.gov-body:not(.gov-login-page) .gov-section-title h2{
  font-size:clamp(19px,1.45vw,23px);
  line-height:1.45;
}
body.gov-body:not(.gov-login-page) .gov-section-title p{
  max-width:820px;
  margin-top:4px;
  color:var(--cd-muted);
}

/* Predictable action language and WCAG-friendly targets. */
body.gov-body :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--cd-focus)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 5px rgba(125,214,239,.13)!important;
}
body.gov-body:not(.gov-login-page) :where(.gov-btn,button.gov-btn){
  min-height:var(--cd-control-height);
  min-width:112px;
  padding:9px 15px;
  border-radius:var(--cd-radius-control);
  border-color:rgba(211,181,99,.26);
  box-shadow:none;
  line-height:1.35;
  white-space:normal;
  text-align:center;
}
body.gov-body:not(.gov-login-page) .gov-btn:hover{
  border-color:rgba(211,181,99,.48);
  filter:brightness(1.08);
}
body.gov-body:not(.gov-login-page) :where(.gov-actions,.gov-header-actions){
  gap:8px;
  align-items:stretch;
}
body.gov-body:not(.gov-login-page) :where(.gov-actions,.gov-header-actions)>form{
  margin:0;
}

/* Forms share one rhythm, label treatment and error-safe wrapping. */
body.gov-body:not(.gov-login-page) :where(.gov-field input,.gov-field select,.gov-field textarea,input.gov-field,select.gov-field,textarea.gov-field){
  min-height:var(--cd-control-height);
  border-radius:var(--cd-radius-control);
  border-color:var(--cd-border);
  background:rgba(4,19,30,.70);
  color:var(--cd-text);
  padding:10px 12px;
  line-height:1.55;
}
body.gov-body:not(.gov-login-page) :where(.gov-field input,.gov-field select,.gov-field textarea,input.gov-field,select.gov-field,textarea.gov-field):hover{
  border-color:rgba(171,199,218,.24);
}
body.gov-body:not(.gov-login-page) .gov-field textarea,
body.gov-body:not(.gov-login-page) textarea.gov-field{
  min-height:104px;
}
body.gov-body:not(.gov-login-page) .gov-field label,
body.gov-body:not(.gov-login-page) label>.gov-field{
  font-weight:850;
}
body.gov-body:not(.gov-login-page) .gov-field :where(small,.gov-field-hint){
  display:block;
  margin-top:6px;
  color:var(--cd-muted);
}
body.gov-body:not(.gov-login-page) :where(input,select,textarea)::placeholder{
  color:#768c9d;
  opacity:1;
}

/* Rectangular, aligned labels that never hide their wording. */
html body.gov-body:not(.gov-login-page) .gov-shell :where(
  .gov-badge,.gov-channel-badge,.gov-ticket-source-label,.gov-close-evidence-status,
  .gov-reference-permission-badge,.speed-badge,.age-badge,
  [class$="-badge"],[class*="-badge "],[class$="-pill"],[class*="-pill "],
  [class$="-tag"],[class*="-tag "]
){
  box-sizing:border-box!important;
  inline-size:auto!important;
  min-inline-size:112px!important;
  max-inline-size:100%!important;
  block-size:auto!important;
  min-block-size:34px!important;
  max-block-size:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:6px 10px!important;
  border-radius:8px!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.35!important;
  text-align:center!important;
  vertical-align:middle!important;
}
/* Sidebar counters are compact numeric indicators, not textual badges. */
html body.gov-body.gov-body:not(.gov-login-page) .gov-shell.gov-shell .gov-sidebar .gov-nav-alert-badge{
  box-sizing:border-box!important;
  inline-size:auto!important;
  min-inline-size:24px!important;
  max-inline-size:38px!important;
  block-size:24px!important;
  min-block-size:24px!important;
  max-block-size:24px!important;
  flex:0 0 auto!important;
  display:inline-grid!important;
  place-items:center!important;
  margin-inline-start:auto!important;
  padding:0 6px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  line-height:1!important;
}
body.gov-body:not(.gov-login-page) .gov-badge{
  font-size:12px;
  font-weight:850;
}

/* Tables remain useful on wide screens and safely scroll on compact ones. */
body.gov-body:not(.gov-login-page) .gov-table-wrap{
  width:100%;
  max-width:100%;
  overflow:auto;
  border-radius:14px;
  border-color:var(--cd-border);
  scrollbar-width:thin;
  scrollbar-color:rgba(211,181,99,.42) rgba(255,255,255,.035);
}
body.gov-body:not(.gov-login-page) .gov-table{
  width:100%;
  background:rgba(6,23,36,.70);
}
body.gov-body:not(.gov-login-page) .gov-table :where(th,td){
  padding:12px 13px;
  border-color:rgba(202,218,232,.085);
  text-align:start;
  vertical-align:middle;
}
body.gov-body:not(.gov-login-page) .gov-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#0d293d;
  color:#dce7ee;
  font-size:12px;
  white-space:nowrap;
}
body.gov-body:not(.gov-login-page) .gov-table tbody tr:hover td{
  background:rgba(255,255,255,.025);
}
body.gov-body:not(.gov-login-page) .gov-table td{
  color:#e8f0f5;
}

/* Consistent statistics without decorative visual noise. */
body.gov-body:not(.gov-login-page) .gov-stat{
  min-height:118px;
  padding:16px;
}
body.gov-body:not(.gov-login-page) .gov-stat::after{
  opacity:.38;
  transform:scale(.76);
}
body.gov-body:not(.gov-login-page) .gov-stat>span{
  color:#acbdca;
}
body.gov-body:not(.gov-login-page) .gov-stat>b{
  margin:8px 0 3px;
  font-size:clamp(25px,2vw,32px);
}
body.gov-body:not(.gov-login-page) .gov-stat>small{
  color:#899dad;
}

/* Alerts, empty states and disclosure panels. */
body.gov-body:not(.gov-login-page) .gov-alert{
  min-height:58px;
  margin:0;
  border-radius:14px;
  padding:13px 15px;
  align-items:flex-start;
}
body.gov-body:not(.gov-login-page) :where(.gov-empty,.gov-empty-inline,.gov-muted-cell){
  color:var(--cd-muted)!important;
}
body.gov-body:not(.gov-login-page) details.gov-card>summary{
  cursor:pointer;
  user-select:none;
}

/* Header and navigation are quieter and more predictable. */
body.gov-body:not(.gov-login-page) .gov-header{
  margin-bottom:0;
  padding:19px 20px;
  border-radius:20px;
  border-color:var(--cd-border);
  box-shadow:var(--cd-shadow);
}
body.gov-body:not(.gov-login-page) .gov-header h1{
  font-size:clamp(25px,2.1vw,31px);
  line-height:1.4;
}
body.gov-body:not(.gov-login-page) .gov-header p{
  color:var(--cd-muted);
  line-height:1.75;
}
body.gov-body:not(.gov-login-page) .gov-nav-item{
  min-height:44px;
  border-radius:10px;
  padding:10px 12px;
  transform:none;
}
body.gov-body:not(.gov-login-page) .gov-nav-item:hover{
  transform:none;
}

/* Avoid invisible clipped copy globally. */
body.gov-body:not(.gov-login-page) :where(.gov-card,.gov-stat,.gov-table td,.gov-info-grid>div,.gov-policy-list>div){
  text-overflow:clip;
}
body.gov-body:not(.gov-login-page) :where(.gov-card,.gov-stat,.gov-info-grid>div,.gov-policy-list>div){
  overflow:visible;
}

@media(max-width:1200px){
  body.gov-body:not(.gov-login-page) :where(.gov-grid.cols-4,.gov-grid.cols-3){
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.gov-body:not(.gov-login-page) .gov-section-title{
    align-items:flex-start;
  }
}

@media(max-width:720px){
  body.gov-body:not(.gov-login-page) .gov-main{
    padding:12px;
    gap:12px;
  }
  body.gov-body:not(.gov-login-page) :where(.gov-grid.cols-4,.gov-grid.cols-3,.gov-info-grid,.gov-form,.gov-form.gov-form-wide){
    grid-template-columns:1fr;
  }
  body.gov-body:not(.gov-login-page) .gov-card{
    padding:14px;
    border-radius:15px;
  }
  body.gov-body:not(.gov-login-page) :where(.gov-section-title,.gov-section-title.compact){
    display:grid;
    align-items:start;
  }
  body.gov-body:not(.gov-login-page) :where(.gov-actions,.gov-header-actions){
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  body.gov-body:not(.gov-login-page) :where(.gov-actions,.gov-header-actions) .gov-btn{
    width:100%;
  }
  body.gov-body:not(.gov-login-page) .gov-table{
    min-width:720px;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  body.gov-body *,body.gov-body *::before,body.gov-body *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

@media print{
  body.gov-body:not(.gov-login-page){background:#fff!important;color:#111!important}
  body.gov-body:not(.gov-login-page) :where(.gov-sidebar,.gov-top-userbar,.gov-header-actions,.gov-actions,.gov-page-copyright){display:none!important}
  body.gov-body:not(.gov-login-page) :where(.gov-card,.gov-stat){box-shadow:none!important;background:#fff!important;color:#111!important;border:1px solid #ccd3d8!important;break-inside:avoid}
  body.gov-body:not(.gov-login-page) :where(h1,h2,h3,h4,b,strong,p,span,small,td,th){color:#111!important}
}

/* Login receives only accessibility and control refinements, not a redesign. */
body.gov-login-page :where(input,button,a):focus-visible{
  outline:3px solid var(--cd-focus)!important;
  outline-offset:3px!important;
}
body.gov-login-page .hd-field input,
body.gov-login-page .hd-primary-btn{
  min-height:44px;
}
