/* One outline family for navigation, buttons and generated interface icons.
   Sizes remain contextual; chart and QR SVGs are not selected. */
.ui-icon, .ui-icon-stroke { flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:var(--icon-stroke,1.75); stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; pointer-events:none; }
.ui-icon { width:20px; height:20px; }
:where(.btn,.lbtn,.link-btn,.icon-btn,.mr-fi-remove) > :is(.ui-icon,.ui-icon-stroke) { width:18px; height:18px; }
.program-card-cta { display:flex; align-items:center; gap:6px; }
.program-card-cta .ui-icon { width:16px; height:16px; }
#adi-root .icon-btn .ui-icon { width:16px; height:16px; }
.mr-chip button .ui-icon, .mr-fi-remove .ui-icon { width:14px; height:14px; }
.brand-logo img { width:100%; height:100%; object-fit:contain; }
#gate-logo img { filter:drop-shadow(0 3px 5px rgba(0,0,0,.3)); }
.brand-logo .ui-icon,.program-card-icon .ui-icon { width:32px; height:32px; }
.admin-logo-ph .ui-icon { width:24px; height:24px; }
.admin-logo-ph img { width:100%; height:100%; object-fit:contain; }
.tab .ui-icon { width:19px; height:19px; }
.tab>span { min-width:0; }
.header-actions { display:flex; flex-wrap:nowrap; gap:8px; }
.header-brand-sub { color:var(--muted); font-size:11px; line-height:1.4; }
.header-actions .header-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.header-actions .ui-icon { width:17px; height:17px; }
.header-search-submit .ui-icon { width:17px; height:17px; }
[data-program-icon] { color:var(--blue); }

@media screen {
  /* Keep all header controls on one row; shrink search before wrapping. */
  #panel-admin .sticky-topbar>.header { display:flex; flex-wrap:nowrap; height:76px; min-height:76px; padding:10px 20px 10px 68px; gap:12px; }
  #panel-admin .header-title-wrap { flex:1 1 220px; min-width:0; }
  #panel-admin .header-title-wrap>div { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #panel-admin .header-line-2,#panel-admin .header-brand-sub,#panel-admin .header-email { display:none; }
  #panel-admin .header-greeting { flex:0 1 180px; min-width:0; overflow:hidden; text-overflow:ellipsis; }
  #panel-admin .header-role { flex:0 0 auto; white-space:nowrap; }
  #panel-admin .header-actions { flex:0 1 480px; min-width:0; align-items:center; }
  #panel-admin .header-actions .header-btn { flex:0 0 auto; white-space:nowrap; }
  #panel-admin .header-search-form { flex:1 1 220px; min-width:0; max-width:300px; height:40px; margin:0; background:var(--bg); border-color:var(--border); }
  #panel-admin .header-search-input { color:var(--slate); }
  #panel-admin .header-search-input::placeholder { color:var(--muted); }
  #panel-admin .header-search-submit { color:var(--blue); background:var(--blue-lt); border-color:var(--border); }
  #panel-admin .header-search-form:focus-within { border-color:var(--blue); box-shadow:0 0 0 2px var(--blue-lt); }
  @media (max-width:1280px) {
    #panel-admin .header-greeting,#panel-admin .header-role { display:none!important; }
  }
  #panel-admin>.sidebar-toggle-btn { position:fixed; z-index:200; }
  #panel-admin .main,#panel-admin .main-inner,#panel-admin .tab-panel { min-width:0; max-width:100%; }
  #panel-admin .mr-layout>*,#panel-admin #adi-root .builder-grid>*,#panel-admin #adi-root .score-grid>*,#panel-admin #adi-root .assign-grid>* { min-width:0; }
  #panel-admin .mr-log-main,#panel-admin .mr-detail-grid>* { min-width:0; overflow-wrap:anywhere; }
  #panel-admin .mr-drawer.is-open { max-height:none; }
  #panel-admin .layout-table-scroll { width:100%; min-width:0; }
  #panel-admin .layout-table-scroll:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
  #toast { max-width:calc(100vw - 32px); overflow-wrap:anywhere; }
  @media (max-width:900px) {
    #panel-admin .sticky-topbar>.header { height:64px; min-height:64px; padding:10px 12px 10px 60px; gap:10px; }
    #panel-admin .header-title-wrap { flex:1 1 160px; }
    #panel-admin .header-line-1 { display:none; }
    #panel-admin .header-actions { flex:1 1 340px; gap:6px; }
    #panel-admin .header-actions .header-btn { width:40px; height:44px; padding:0; }
    #panel-admin .header-actions .header-btn>span { display:none; }
    #panel-admin .header-search-form { height:44px; }
    #panel-admin .sidebar-toggle-btn { top:12px; }
    /* The page-level rule in Admin.html gives every direct child of
       #panel-admin its own z-index:1 stacking context. The sidebar lives
       inside .app-body while the backdrop is a direct child, so without
       this override the backdrop renders above the visible drawer and
       intercepts every tap. Let the fixed drawer participate in the
       panel's stacking order: backdrop 140, drawer 150, toggle 200. */
    #panel-admin>.app-body { position:static; z-index:auto; }
    #panel-admin>.sidebar-overlay { position:fixed; inset:0; z-index:140; }
    /* A modal drawer must not leave the underlying page scrollable/focusable. */
    body.navigation-open { overflow:hidden; }
    #panel-admin .sidebar { width:min(280px,calc(100vw - 48px)); overscroll-behavior:contain; padding-bottom:max(20px,env(safe-area-inset-bottom)); pointer-events:auto; }
    #panel-admin .sidebar { height:100dvh; max-height:100dvh; }
    #panel-admin .sidebar.collapsed { width:min(280px,calc(100vw - 48px)); pointer-events:none; }
    #panel-admin .grid-2,#panel-admin .grid-3,#panel-admin .grid-4 { grid-template-columns:minmax(0,1fr); }
    #panel-admin .mr-layout { grid-template-columns:minmax(0,1fr); }
    #panel-admin #adi-root .builder-grid,#panel-admin #adi-root .assign-grid,#panel-admin #adi-root .score-grid { grid-template-columns:minmax(0,1fr); }
    #panel-admin #adi-root .builder-grid.crit-list-collapsed { grid-template-columns:minmax(0,1fr); }
    #panel-admin #adi-root .builder-grid.crit-list-collapsed .criteria-list { display:none; }
  }
  @media (max-width:600px) {
    #panel-admin .sticky-topbar>.header { padding-right:8px; padding-left:56px; gap:6px; }
    #panel-admin .header-title-wrap,#panel-admin .header-logos { display:none; }
    #panel-admin .header-actions { flex:1 1 0; gap:4px; }
    #panel-admin .header-search-submit { width:30px; flex-basis:30px; }
    #panel-admin .header-search-input { padding:8px 6px; }
    #panel-admin .header-line-2 { font-size:10px; }
    #panel-admin .header-main-title { font-size:12px; }
    #panel-admin .header-brand-sub { font-size:10px; overflow-wrap:anywhere; }
    #panel-admin .main-inner { padding:16px 12px 40px; }
    #panel-admin .card { padding:14px; }
    /* Inline desktop minima otherwise win over the shared responsive form rules. */
    #panel-admin :is(input,select,textarea)[style*="min-width"] { min-width:0!important; max-width:100%; }
    #panel-admin .filter-row,#panel-admin .trend-controls,#panel-admin .form-row { flex-wrap:wrap; gap:10px; }
    #panel-admin .filter-group,#panel-admin .form-group { flex:1 1 100%; min-width:0; }
    #panel-admin :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]) { font-size:16px; }
    #panel-login :is(input,select,textarea):not(.otp-box) { font-size:16px; }
    #panel-admin .trend-check-list { min-width:0; max-width:100%; }
    #panel-admin .mr-detail-grid { grid-template-columns:minmax(0,1fr); gap:6px; }
    #panel-admin .mr-detail-grid>div:nth-child(even) { margin-bottom:10px; }
    #panel-admin .mr-log-row { padding:12px; gap:8px; }
    #panel-admin .mr-log-actions { flex-wrap:wrap; }
    #panel-admin>.mr-overlay.is-open { padding:12px; }
    #panel-admin .mr-modal { max-height:calc(100dvh - 24px); overflow-y:auto; border-radius:14px; }
    #panel-admin .mr-modal-head,#panel-admin .mr-modal-body { padding:16px; }
    #panel-admin .mr-close-btn { min-width:44px; min-height:44px; }
    .modal-back { padding:12px!important; }
    .modal-back>div { padding:16px!important; max-height:calc(100dvh - 24px)!important; min-width:0; }
    #mrFormBody :is(.form-row,.form-group) { min-width:0; }
    #panel-admin #adi-root .item-row,#panel-admin #adi-root .item-row.nest-1,#panel-admin #adi-root .item-row.nest-2,
    #panel-admin #adi-root .score-item-row,#panel-admin #adi-root .score-item-row.nest-1,#panel-admin #adi-root .score-item-row.nest-2 {
      grid-template-columns:24px minmax(0,1fr); gap:8px; padding:12px;
    }
    #panel-admin #adi-root .item-row>*:nth-child(2),#panel-admin #adi-root .score-item-label { grid-column:2; min-width:0; overflow-wrap:anywhere; }
    #panel-admin #adi-root .item-row>*:nth-child(3),#panel-admin #adi-root .item-row>*:nth-child(4),
    #panel-admin #adi-root .score-item-row>*:nth-child(3),#panel-admin #adi-root .score-item-row>*:nth-child(4) { grid-column:2; min-width:0; }
    #panel-admin #adi-root .item-row>.icon-btn { grid-column:1; grid-row:2; }
    #panel-admin #adi-root .formula-fields,#panel-admin #adi-root .formula-fields.nest-1,#panel-admin #adi-root .formula-fields.nest-2 { padding-left:0; flex-wrap:wrap; }
    #panel-admin #adi-root .verif-toggle,#panel-admin #adi-root .adv-toggle-wrap,#panel-admin #adi-root .adv-toggle-wrap.nest-1,#panel-admin #adi-root .adv-toggle-wrap.nest-2 { padding-left:0; }
    #panel-admin #adi-root .builder-footer,#panel-admin #adi-root .section-head,#panel-admin #adi-root .sec-options { flex-wrap:wrap; gap:10px; }
    #panel-admin #adi-root .sec-rollup-hint { min-width:0; flex-basis:100%; }
    #panel-admin #adi-root .stat-strip { grid-template-columns:minmax(0,1fr); }
    #panel-admin #adi-root .topband-inner { padding:16px; }
  }
}
@media print { .header-actions { display:none; } }

/* Logos and program icons stand on their own: no tile, circle or border
   behind them. Icon colours and the office seal's drop shadow are kept. */
.brand-logo, .brand-logo[data-program-icon], html[data-theme="dark"] .brand-logo[data-program-icon],
.program-card-icon, .program-card-icon[data-program-icon], html[data-theme="dark"] .program-card-icon[data-program-icon],
.admin-logo-ph, .admin-logo-ph[data-office-logo] {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
