/* GL console: Access mapping and Work settings (access.js) */
.ax-page .ptabs{margin-bottom:16px}
.ax-hint{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink-2);background:var(--blue-bg);border:1px solid #d4e0fb;border-radius:9px;padding:9px 12px;margin:0 0 12px}
.ax-hint>svg{width:15px;height:15px;color:var(--blue);flex-shrink:0;margin-top:2px}
.ax-hint b{font-weight:500}
.ax-filters{margin-bottom:12px}
.ax-banner{margin-bottom:12px}
.ax-inl{display:flex;align-items:center;gap:8px;min-width:0}
.ax-inl .inp{flex:1}
.ax-inl .ax-n{flex:0 0 84px}
.ax-gap8{gap:8px}
.ax-dash{padding-left:2px}
.ax-yes{display:inline-flex;align-items:center;gap:4px;color:var(--brand-2);font-weight:500}
.ax-yes svg{width:14px;height:14px}
.ax-no{color:var(--ink-4)}
.ax-chip-a{background:var(--brand-3);color:var(--brand-2)}
.ax-chip-d{background:var(--red-bg);color:var(--red)}

/* roles & pages: legend and bar */
.ax-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.ax-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-2)}
.ax-legend li{display:inline-flex;align-items:center;gap:7px}
.ax-legend .ax-c{width:22px;height:22px;border-radius:6px}
.ax-unsaved{margin-bottom:12px}
.ax-unsaved p{flex:1}
.ax-unsaved .linkbtn{color:var(--amber);font-size:13.5px}

/* roles & pages: matrix (scrolls inside its card, never the page) */
.ax-mx-card{overflow:hidden}
.ax-mx-wrap{overflow:auto;max-height:calc(100vh - 250px);min-height:320px;overscroll-behavior:contain;contain:paint}
.ax-mx{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content;font-size:13px}
.ax-mx th,.ax-mx td{border-bottom:1px solid var(--line-2);padding:0;background:#fff}
.ax-mx thead th{position:sticky;top:0;z-index:3;background:var(--paper);border-bottom:1px solid var(--line);vertical-align:bottom}
.ax-rh{position:sticky;left:0;z-index:2;text-align:left;font-weight:400;width:224px;min-width:200px;max-width:300px;padding:8px 12px 8px 16px!important;border-right:1px solid var(--line)}
.ax-mx thead .ax-corner{z-index:4;font-family:var(--h);font-size:11.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding-bottom:12px!important}
.ax-rl{display:block;color:var(--ink);font-size:13.5px;line-height:1.35}
.ax-rh small{display:block;font-size:11.5px;color:var(--ink-4);margin-top:1px}
.ax-ch{min-width:136px;width:136px;padding:10px 6px 8px!important;text-align:center;font-weight:400}
.ax-ch:focus{outline:none}
.ax-ch:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}
.ax-ch-n{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}
.ax-ch-n b{font-family:var(--h);font-weight:600;font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:118px}
.ax-ch-n svg{width:13px;height:13px;color:var(--ink-3)}
.ax-ch-s{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1px}
.ax-ch-a{display:flex;align-items:center;justify-content:center;gap:2px;margin-top:6px;min-height:30px}
.ax-ch-a .btn-primary{padding:0 9px}
.ax-fixed{display:inline-flex;align-items:center;height:22px;margin-top:10px;padding:0 8px;border-radius:6px;background:var(--paper-2);color:var(--ink-3);font-size:11.5px;font-weight:500}
.ax-del:hover{color:var(--red);background:var(--red-bg)}
.ax-mx thead .ax-dirty{background:var(--amber-bg);box-shadow:inset 0 -2px 0 var(--amber-dot)}
.ax-mx thead .ax-lk{background:#eef2ef}
.ax-grp th{position:sticky;left:0;background:var(--paper)!important;text-align:left;padding:10px 16px 6px!important;border-bottom:1px solid var(--line)!important}
.ax-grp th span{position:sticky;left:16px;font-family:var(--h);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-2)}
.ax-mx tbody tr:not(.ax-grp):hover th,.ax-mx tbody tr:not(.ax-grp):hover td{background:#f8faf8}
.ax-td{text-align:center;vertical-align:middle;padding:5px 6px!important}
.ax-td.ax-lk{background:#fafbfa}
.ax-c{display:inline-grid;place-items:center;width:32px;height:28px;border-radius:7px;border:1px solid var(--line-3);background:#fff;color:var(--ink-4);padding:0;transition:background .12s,border-color .12s,box-shadow .12s}
.ax-c svg{width:15px;height:15px;stroke-width:2.4}
button.ax-c:hover{border-color:var(--brand)}
button.ax-c:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.ax-allow{background:var(--brand-3);border-color:#9fd3b5;color:var(--brand-2)}
.ax-deny{background:var(--red-bg);border-color:var(--red-line);color:var(--red)}
.ax-none{background:#fff}
.ax-dot{width:4px;height:4px;border-radius:50%;background:var(--line-3)}
.ax-lk .ax-c{border-style:dashed;opacity:.85}
.ax-c.ax-chg{box-shadow:0 0 0 2px var(--amber-dot)}
.ax-scopes .ax-td{padding:6px 3px!important}
.ax-sc{height:32px;font-size:12px;padding:0 17px 0 6px;background-position:right 3px center;background-size:12px;min-width:0;text-overflow:ellipsis}
.ax-td.ax-chg .ax-sc{border-color:var(--amber-dot);box-shadow:0 0 0 2px rgba(240,160,32,.25)}
.ax-sct{font-size:12.5px;color:var(--ink-3)}

/* role save: what changes */
.ax-diff{display:flex;flex-direction:column;gap:12px}
.ax-dl h4{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;margin-bottom:6px}
.ax-dl h4 svg{width:15px;height:15px}
.ax-dl ul{margin:0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:var(--ink-2)}
.ax-dl-add h4 svg{color:var(--brand)}
.ax-dl-deny h4 svg{color:var(--red)}
.ax-dl-rem h4 svg{color:var(--ink-3)}
.ax-dl-sc h4 svg{color:var(--blue)}

/* people */
.ax-pgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.4fr) 132px;gap:14px;align-items:center}
.ax-pgrid>div{min-width:0;font-size:13.5px}
.ax-po{display:flex;flex-wrap:wrap;gap:4px}
.ax-po .chip{height:22px;font-size:12px;padding:0 8px}
.ax-px{overflow-wrap:anywhere}
.dlg.ax-udlg{width:min(1040px,calc(100vw - 32px))}
.ax-ud{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.ax-ud-f{display:flex;flex-direction:column;gap:16px;min-width:0}
.ax-ud-p{position:sticky;top:0;max-height:calc(100vh - 180px);overflow:auto;overscroll-behavior:contain;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.ax-ud-p h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin-bottom:4px}
.ax-ud-p h3 svg{width:16px;height:16px;color:var(--brand)}
.ax-chks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ax-chks .check{padding:7px 10px;min-width:0}
.ax-chks .role{white-space:nowrap}
.ax-chks .check small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%}
.ax-picks{display:flex;flex-wrap:wrap;gap:6px}
.ax-pick{position:relative;display:inline-flex}
.ax-pick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.ax-pick span{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border:1px solid var(--line-3);border-radius:999px;font-size:13px;background:#fff;color:var(--ink-2)}
.ax-pick input:checked+span{background:var(--brand-3);border-color:var(--brand);color:var(--brand-2);font-weight:500}
.ax-pick input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.ax-pick input:disabled{cursor:not-allowed}
.ax-pick input:disabled+span{background:var(--paper);border-style:dashed;color:var(--ink-4)}
.ax-home{font-size:12px}
.ax-scg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.ax-ovr{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ax-ovr summary{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:11px 14px;background:var(--paper);cursor:pointer;font-family:var(--h);font-weight:500;font-size:13.5px}
.ax-ovr summary::-webkit-details-marker{display:none}
.ax-ovr summary .chev{width:15px;height:15px;color:var(--ink-3);transform:rotate(-90deg);transition:transform .15s}
.ax-ovr[open] summary .chev{transform:none}
.ax-ovr summary .cnt{font-family:var(--b);font-size:11.5px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 7px;line-height:18px;color:var(--ink-2)}
.ax-ovr summary small{font-family:var(--b);font-weight:400;font-size:12.5px;color:var(--ink-3);flex-basis:100%;padding-left:23px}
.ax-og{padding:10px 14px 4px;border-top:1px solid var(--line-2)}
.ax-og h4{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.02em;margin-bottom:4px}
.ax-orow{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line-2)}
.ax-orow:last-child{border-bottom:0}
.ax-ol{font-size:13.5px;min-width:0}
.ax-ol small{display:block;font-size:12px;color:var(--ink-3)}
.ax-orow .seg{flex-shrink:0}
.ax-orow .seg span{padding:5px 10px;font-size:12.5px}
.ax-orow .seg label:nth-child(2) input:checked+span{background:var(--brand-3);color:var(--brand-2)}
.ax-orow .seg label:nth-child(3) input:checked+span{background:var(--red-bg);color:var(--red)}
.ax-orow.bad .seg{box-shadow:0 0 0 2px var(--red)}
.ax-orow .ferr{flex-basis:100%}
.field.bad .ax-chks,.field.bad .ax-picks{outline:2px solid var(--red);outline-offset:3px;border-radius:10px}
.ax-pv{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.ax-pv th,.ax-pv td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line-2);vertical-align:top}
.ax-pv thead th{font-family:var(--h);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.ax-pv tbody th{font-weight:500;color:var(--ink-2)}
.ax-pv-g th{font-family:var(--h);font-size:12px;font-weight:600!important;color:var(--ink-3)!important;padding-top:12px!important}
.ax-pv-chg td,.ax-pv-chg th{background:var(--amber-bg)}
.ax-pv-chg td:last-child{font-weight:600}
.ax-saved{display:flex;flex-direction:column;gap:14px}
.ax-saved h4{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;margin-bottom:8px}
.ax-saved h4 svg{width:15px;height:15px;color:var(--brand)}
.ax-tags{display:flex;flex-wrap:wrap;gap:6px}

/* departments */
.ax-dtop{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.ax-defd{flex:1 1 440px;max-width:640px}
.ax-dadd{margin-left:auto}
.ax-dgrid{display:grid;grid-template-columns:minmax(0,1.6fr) 90px 110px 80px 124px 110px;gap:14px;align-items:center}
.ax-dgrid>span{min-width:0;font-size:13.5px}
.ax-def{display:inline-flex!important;align-items:center;gap:4px;color:var(--blue)!important}
.ax-def svg{width:12px;height:12px}

/* work settings: categories, templates, holidays, weights */
.ax-cgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr) 92px minmax(0,1.5fr) 110px 80px;gap:12px;align-items:center}
.ax-cgrid>span{min-width:0;font-size:13.5px}
.ax-flags{display:flex;flex-wrap:wrap;gap:4px}
.ax-tgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1fr) 110px 80px;gap:14px;align-items:center}
.ax-tgrid>span{min-width:0;font-size:13.5px}
.ax-rule small{display:block;font-size:12px;color:var(--ink-3)}
.ax-to{display:flex;align-items:center;gap:8px;min-width:0}
.ax-to>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ax-q{display:flex;align-items:center;gap:8px;min-width:0}
.ax-q>svg{width:28px;height:28px;padding:6px;border-radius:50%;background:var(--paper-2);color:var(--ink-3);flex-shrink:0}
.ax-q span{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.ax-q b{font-weight:500;font-size:13px}
.ax-q small{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ax-next{list-style:none;margin:0;padding:0;font-size:13px}
.ax-next li+li{color:var(--ink-3);font-size:12px}
.ax-hgrid{display:grid;grid-template-columns:260px minmax(0,1fr) 120px;gap:14px;align-items:center}
.ax-hgrid>span{min-width:0;font-size:13.5px}
.ax-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ax-hd b{font-weight:500}
.ax-hd .chip{height:22px;font-size:11.5px}
.dlg.ax-tdlg{width:min(820px,calc(100vw - 32px))}
.ax-days{display:flex;flex-wrap:wrap;gap:6px}
.ax-days label{position:relative;display:inline-flex}
.ax-days input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.ax-days span{display:grid;place-items:center;width:48px;height:34px;border:1px solid var(--line-3);border-radius:9px;font-family:var(--h);font-size:12.5px;font-weight:500;color:var(--ink-2);background:#fff}
.ax-days input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.ax-days input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.ax-radios{display:flex;flex-wrap:wrap;gap:8px}
.ax-radios .check{padding:6px 10px;min-height:44px}
.ax-mday{flex-wrap:wrap}
.ax-mday .inp{height:32px;width:auto}
.ax-mday .ax-n{width:76px}
.ax-mday input[type=date]{width:170px}
.ax-unit{color:var(--ink-2);font-size:13.5px;white-space:nowrap}
.ax-rsum{background:var(--paper);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.ax-rsum:empty{display:none}
.ax-rsum p{display:flex;align-items:center;gap:8px}
.ax-rsum p>svg{width:15px;height:15px;color:var(--brand);flex-shrink:0}
.ax-rsum b{font-weight:500}
.ax-rsum code{font-size:11.5px;color:var(--ink-3);overflow-wrap:anywhere}
.ax-rs-bad{display:flex;align-items:center;gap:8px;color:var(--red);font-size:13px}
.ax-rs-bad svg{width:15px;height:15px;color:var(--red)!important;flex-shrink:0}
.ax-seg{flex-wrap:wrap}
.ax-pvbox{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ax-pvbox>div{width:100%}
.ax-pvbox>div:empty{display:none}
.ax-pvbox .muted{display:flex;align-items:center;gap:8px}
.ax-pvt{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ax-pvt th,.ax-pvt td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
.ax-pvt thead th{background:var(--paper);font-family:var(--h);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.ax-pvt tbody tr:last-child td{border-bottom:0}
.ax-moved{display:block;font-size:11.5px;color:var(--amber)}
.ax-act{border-color:var(--line-3)}
.ax-wlist{display:flex;flex-direction:column;gap:4px}
.ax-wrow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) 84px 130px;gap:14px;align-items:center;flex-direction:row;padding:6px 0;border-bottom:1px solid var(--line-2)}
.ax-wrow:last-child{border-bottom:0}
.ax-wrow .lbl{font-size:13.5px;color:var(--ink)}
.ax-range{width:100%;accent-color:var(--brand);margin:0;height:24px}
.ax-share{font-size:12.5px;color:var(--ink-3);text-align:right;white-space:nowrap}
.ax-wrow .ferr{grid-column:1/-1}

@media (max-width:1240px){
  .ax-cgrid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) 92px minmax(0,1.3fr) 110px 80px}
  .ax-cgrid>span:nth-child(3),.uh.ax-cgrid>span:nth-child(3){display:none}
  .ax-pgrid{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.4fr) 132px}
  .ax-pgrid>.ax-px,.uh.ax-pgrid>span:nth-child(4){display:none}
}
@media (max-width:960px){
  .ax-ud{grid-template-columns:minmax(0,1fr)}
  .ax-ud-p{position:static}
  .ax-pgrid,.ax-cgrid,.ax-tgrid,.ax-dgrid,.ax-hgrid{display:flex;flex-wrap:wrap;gap:6px 14px}
  .ulist .uh.ax-pgrid,.ulist .uh.ax-cgrid,.ulist .uh.ax-tgrid,.ulist .uh.ax-dgrid,.ulist .uh.ax-hgrid{display:none}
  .ax-pgrid>.u-who,.ax-cgrid>.m-n,.ax-tgrid>.m-n,.ax-dgrid>.m-n,.ax-tgrid>.ax-rule{flex-basis:100%}
  .ax-pgrid>.ax-px{display:block}
  .ax-pgrid>.ax-px.ax-empty{display:none}
  .ax-pgrid>.ax-po{flex-basis:100%}
  .ax-cgrid>span:nth-child(3){display:inline}
  .ax-cgrid>.ax-flags{flex-basis:100%}
  .ax-flags .ax-nil,.ax-cgrid>.ax-flags:has(.ax-nil){display:none}
  .ax-pgrid .u-act,.ax-cgrid .u-act,.ax-tgrid .u-act,.ax-dgrid .u-act,.ax-hgrid .u-act{margin-left:auto}
  .ax-hgrid>.ax-hd{flex-basis:100%}
  .ax-pgrid .m-lbl,.ax-cgrid .m-lbl,.ax-tgrid .m-lbl,.ax-dgrid .m-lbl{display:inline;color:var(--ink-3)}
  .ax-wrow{grid-template-columns:minmax(0,1fr) 84px;row-gap:4px}
  .ax-wrow .lbl{grid-column:1/-1}
  .ax-share{grid-column:1/-1;text-align:left}
}
@media (max-width:760px){
  .ax-mx-wrap{max-height:calc(100vh - 150px);min-height:0}
  .ax-rh{width:150px;min-width:150px;max-width:150px;padding:8px 10px!important}
  .ax-rh small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ax-rl{font-size:13px}
  .ax-ch{min-width:104px;width:104px}
  .ax-bar .fsp{display:none}
  .ax-bar>.btn{width:100%}
  .ax-chks,.ax-scg{grid-template-columns:minmax(0,1fr)}
  .ax-orow{flex-direction:column;align-items:flex-start;gap:6px}
  .ax-radios{flex-direction:column}
  .ax-radios .check{min-height:0}
  .ax-dadd{margin-left:0;width:100%}
  .ax-dadd .btn{width:100%}
  .ax-defd{flex-basis:100%}
  .ax-filters .btn{flex-shrink:0}
  .ax-hgrid .u-act{margin-left:auto}
  .ax-mday input[type=date]{width:150px}
  .ax-pvt th,.ax-pvt td{padding:6px 8px}
}

/* layout alignment pass (Sept 2026) */
.ax-flags .badge{min-width:0;max-width:100%}
.ax-flags .badge>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ax-cgrid .m-n b{white-space:normal}
.ax-fixed{margin-top:14px}
@media (min-width:1241px){.ax-cgrid{grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) minmax(0,.8fr) minmax(0,.9fr) 92px minmax(0,2.2fr) 110px 80px}}
@media (max-width:1240px) and (min-width:961px){.ax-cgrid{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,.9fr) 92px minmax(0,1.6fr) 104px 76px}}
