:root{
  --ps-navy:#071750;
  --ps-blue:#153a70;
  --ps-cyan:#168bd1;
  --ps-mint:#17a57b;
  --ps-gold:#d99b32;
  --ps-red:#c94f61;
  --ps-ink:#1d3152;
  --ps-muted:#738198;
  --ps-line:#dfe6ef;
  --ps-bg:#f4f7fb;
}
.ps-shell{
  position:fixed;
  inset:0;
  z-index:9997;
  overflow:auto;
  background:var(--ps-bg);
  color:var(--ps-ink);
  font-family:Tahoma,"Segoe UI",Arial,sans-serif;
}
.ps-shell *{box-sizing:border-box}
.ps-shell button,.ps-shell input,.ps-shell select{font:inherit}
.ps-topbar{
  position:sticky;
  top:0;
  z-index:20;
  min-height:78px;
  padding:12px clamp(16px,4vw,64px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:rgba(7,23,80,.975);
  color:#fff;
  box-shadow:0 8px 30px rgba(7,23,80,.16);
  backdrop-filter:blur(15px);
}
.ps-brand{display:flex;align-items:center;gap:12px}
.ps-brand>button{
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:11px;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
}
.ps-brand strong,.ps-brand small{display:block}
.ps-brand strong{font-size:15px}
.ps-brand small{
  margin-top:4px;
  color:rgba(255,255,255,.62);
  font-size:10px;
}
.ps-brand-icon{
  display:grid;
  place-items:center;
  grid-template-columns:repeat(3,8px);
  grid-template-rows:repeat(2,8px);
  gap:5px;
  background:linear-gradient(145deg,#208bd0,#15558e);
  box-shadow:0 14px 30px rgba(22,139,209,.2);
}
.ps-brand-icon i{
  display:block;
  width:8px;
  height:8px;
  border-radius:2px;
  background:rgba(255,255,255,.9);
}

.ps-shell{z-index:9998}
.ps-brand-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  grid-template-columns:repeat(2,7px);
  grid-template-rows:repeat(2,7px);
  gap:5px;
}
.ps-top-actions{display:flex;gap:8px}
.ps-top-actions button{
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  font-size:10px;
  font-weight:700;
}
.ps-content{
  width:min(1600px,calc(100% - 36px));
  margin:auto;
  padding:30px 0 70px;
}
.ps-unit-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:22px;
  padding:7px;
  border:1px solid var(--ps-line);
  border-radius:16px;
  background:#e9eef5;
  box-shadow:inset 0 1px 3px rgba(20,43,77,.05);
}
.ps-unit-switch button{
  min-height:62px;
  padding:10px 16px;
  border:1px solid transparent;
  border-radius:11px;
  color:#607089;
  text-align:start;
  background:transparent;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease;
}
.ps-unit-switch button span,
.ps-unit-switch button small{
  display:block;
}
.ps-unit-switch button span{
  font-size:12px;
  font-weight:800;
}
.ps-unit-switch button small{
  margin-top:5px;
  color:#8995a7;
  font-size:8px;
}
.ps-unit-switch button:hover{
  color:var(--ps-blue);
  background:rgba(255,255,255,.66);
}
.ps-unit-switch button.active{
  border-color:#d9e4ef;
  color:var(--ps-blue);
  background:#fff;
  box-shadow:0 7px 20px rgba(19,48,83,.09);
}
.ps-unit-switch button.active small{
  color:var(--ps-mint);
}
.ps-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.ps-heading>div:first-child>span{
  color:var(--ps-mint);
  font-size:9px;
  font-weight:800;
  letter-spacing:.05em;
}
.ps-heading h1{margin:7px 0 5px;font-size:clamp(23px,3vw,36px);letter-spacing:-.035em}
.ps-heading p{margin:0;color:var(--ps-muted);font-size:10px}
.ps-period{display:flex;gap:8px}
.ps-period label{min-width:145px}
.ps-period label>span{display:block;margin:0 3px 6px;color:#63738b;font-size:8px;font-weight:800}
.ps-period select{
  width:100%;
  height:42px;
  padding:0 12px;
  border:1px solid var(--ps-line);
  border-radius:11px;
  background:#fff;
  color:var(--ps-ink);
  outline:0;
  font-size:10px;
}
.ps-toast{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
  padding:12px 14px;
  border-radius:11px;
  background:#e8f7f2;
  color:#116b53;
  font-size:10px;
  font-weight:700;
}
.ps-toast.danger{background:#fff0f2;color:#a9394b}
.ps-toast button{border:0;background:transparent;color:inherit;font-size:17px;cursor:pointer}
.ps-toolbar{
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--ps-line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 28px rgba(21,42,75,.045);
}
.ps-toolbar>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ps-toolbar button,.ps-primary,.ps-secondary{
  min-height:38px;
  padding:0 13px;
  border:1px solid var(--ps-line);
  border-radius:10px;
  background:#fff;
  color:var(--ps-blue);
  cursor:pointer;
  font-size:9px;
  font-weight:800;
}
.ps-toolbar .ps-primary,.ps-primary{
  border-color:var(--ps-blue);
  background:var(--ps-blue);
  color:#fff;
}
.ps-toolbar .ps-mint{border-color:#d2ebe4;background:#edf8f5;color:#127559}
.ps-toolbar .ps-warning{border-color:#f1dfb9;background:#fff8e9;color:#94630e}
.ps-toolbar .ps-warning b{
  min-width:18px;
  height:18px;
  margin-inline-start:5px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#e9b84d;
  color:#fff;
  font-size:8px;
}
.ps-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:12px 0;
}
.ps-stats article{
  padding:16px 18px;
  border:1px solid var(--ps-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(21,42,75,.035);
}
.ps-stats small,.ps-stats strong,.ps-stats em{display:block}
.ps-stats small{color:var(--ps-muted);font-size:8px}
.ps-stats strong{margin-top:4px;color:var(--ps-blue);font-size:23px}
.ps-stats em{margin-top:2px;color:#a0aab8;font-size:7px;font-style:normal}
.ps-stats article.has-alerts strong{color:#b77416}
.ps-schedule-card{
  overflow:hidden;
  border:1px solid var(--ps-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 40px rgba(21,42,75,.055);
}
.ps-schedule-card>header{
  padding:15px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(135deg,#071750,#153a70);
  color:#fff;
}
.ps-schedule-card>header>div:last-child{text-align:left}
.ps-schedule-card>header strong,.ps-schedule-card>header small{display:block}
.ps-schedule-card>header strong{font-size:12px}
.ps-schedule-card>header small{margin-top:4px;color:rgba(255,255,255,.62);font-size:8px}
.ps-table-scroll{max-width:100%;overflow:auto;direction:ltr}
.ps-schedule-table{
  width:max-content;
  min-width:100%;
  border-collapse:separate;
  border-spacing:0;
  direction:ltr;
  color:var(--ps-ink);
  font-size:8px;
}
.ps-schedule-table th,.ps-schedule-table td{
  min-width:38px;
  height:46px;
  padding:4px;
  border-inline-end:1px solid #e6ebf1;
  border-bottom:1px solid #e6ebf1;
  text-align:center;
  background:#fff;
}
.ps-schedule-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  height:45px;
  background:#f4f7fa;
  color:#56667f;
}
.ps-schedule-table th b,.ps-schedule-table th small{display:block}
.ps-schedule-table th b{font-size:9px}
.ps-schedule-table th small{margin-top:3px;color:#99a4b4;font-size:6px}
.ps-schedule-table .weekend{background:#fff8ea}
.ps-schedule-table .ps-employee-index{
  position:sticky;
  left:0;
  z-index:5;
  min-width:40px;
  background:#f5f8fb;
  color:#8793a4;
}
.ps-schedule-table .ps-employee-name{
  position:sticky;
  left:40px;
  z-index:5;
  min-width:195px;
  max-width:195px;
  padding:7px 10px;
  background:#fff;
  direction:rtl;
  text-align:right;
  box-shadow:5px 0 10px rgba(22,43,75,.035);
}
.ps-schedule-table thead .ps-employee-name{background:#f4f7fa;text-align:center}
.ps-employee-name strong,.ps-employee-name small{display:block}
.ps-employee-name strong{overflow:hidden;color:#203452;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.ps-employee-name small{margin-top:4px;overflow:hidden;color:#8c98a9;font-size:6px;text-overflow:ellipsis;white-space:nowrap}
.ps-shift-cell{
  width:31px;
  height:31px;
  padding:0;
  border:1px dashed #dce3eb;
  border-radius:8px;
  background:#fafbfd;
  color:#a1acb9;
  cursor:pointer;
  font-size:7px;
  font-weight:800;
}
.ps-shift-cell.assigned{
  border:1px solid color-mix(in srgb,var(--shift-color) 35%,white);
  background:var(--shift-bg);
  color:var(--shift-color);
}
.ps-shift-cell:hover{outline:2px solid rgba(22,119,200,.12)}
.ps-schedule-table .ps-summary{min-width:50px;background:#f7f9fb}
.ps-summary strong,.ps-summary small{display:block}
.ps-summary strong{color:var(--ps-blue);font-size:9px}
.ps-summary small{margin-top:3px;color:#929eae;font-size:6px}
.ps-empty{padding:70px 20px;text-align:center}
.ps-empty-icon{
  width:58px;
  height:58px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(2,8px);
  grid-template-rows:repeat(2,8px);
  gap:6px;
  place-content:center;
  border-radius:17px;
  background:#eaf4fb;
}
.ps-empty-icon i{display:block;border-radius:2px;background:#2787c6}
.ps-empty h3{margin:15px 0 7px;font-size:15px}
.ps-empty p{margin:0 auto 16px;max-width:480px;color:var(--ps-muted);font-size:9px;line-height:1.8}
.ps-legend{padding:15px 18px;border-top:1px solid #e7ecf2;background:#fbfcfd}
.ps-legend h3{margin:0 0 10px;color:#617189;font-size:8px;letter-spacing:.04em}
.ps-legend>div{display:flex;gap:7px;flex-wrap:wrap}
.ps-legend span{
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border:1px solid color-mix(in srgb,var(--shift-color) 24%,white);
  border-radius:8px;
  background:var(--shift-bg);
}
.ps-legend b{color:var(--shift-color);font-size:7px}
.ps-legend em{color:#718096;font-size:6px;font-style:normal}
.ps-approval{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  padding:22px clamp(20px,8vw,120px);
  border-top:1px solid #e7ecf2;
}
.ps-approval>div{text-align:center}
.ps-approval span,.ps-approval strong,.ps-approval small{display:block}
.ps-approval span{min-height:27px;padding-bottom:6px;border-bottom:1px solid #aeb9c6;font-size:9px}
.ps-approval strong{margin-top:6px;color:#2b4161;font-size:8px}
.ps-approval small{margin-top:3px;color:#98a3b2;font-size:6px}
.ps-storage-note{margin:10px 2px 0;color:#9aa5b4;font-size:7px}
.ps-modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(4,14,44,.54);backdrop-filter:blur(5px)}
.ps-modal{
  position:fixed;
  z-index:81;
  top:50%;
  left:50%;
  width:min(760px,calc(100% - 28px));
  max-height:calc(100vh - 36px);
  overflow:auto;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.35);
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 90px rgba(4,14,44,.32);
}
.ps-modal>header{
  position:sticky;
  top:0;
  z-index:2;
  padding:17px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(135deg,#071750,#153a70);
  color:#fff;
}
.ps-modal>header span{color:#60d5b5;font-size:7px;font-weight:800;letter-spacing:.08em}
.ps-modal>header h2{margin:5px 0 0;font-size:17px}
.ps-modal>header p{margin:4px 0 0;color:rgba(255,255,255,.65);font-size:8px}
.ps-modal>header>button{
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  font-size:20px;
}
.ps-modal-body{padding:18px}
.ps-employee-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:14px;
  border:1px solid #e1e7ee;
  border-radius:14px;
  background:#f8fafc;
}
.ps-employee-form label,.ps-approval-form label{display:block}
.ps-employee-form label>span,.ps-approval-form label>span{
  display:block;
  margin:0 2px 6px;
  color:#5d6d84;
  font-size:8px;
  font-weight:800;
}
.ps-employee-form input,.ps-employee-form select,.ps-approval-form input{
  width:100%;
  height:38px;
  padding:0 10px;
  border:1px solid #d9e1e9;
  border-radius:9px;
  background:#fff;
  color:var(--ps-ink);
  outline:0;
  font-size:9px;
}
.ps-employee-form .ps-check{display:flex;align-items:center;gap:7px}
.ps-employee-form .ps-check input{width:15px;height:15px}
.ps-employee-form .ps-check span{margin:0}
.ps-employee-list{margin-top:13px;border:1px solid #e1e7ee;border-radius:14px;overflow:hidden}
.ps-employee-list article{
  padding:11px 12px;
  display:grid;
  grid-template-columns:36px 1fr auto auto;
  gap:10px;
  align-items:center;
  border-bottom:1px solid #e8edf2;
}
.ps-employee-list article:last-child{border-bottom:0}
.ps-employee-list article.inactive{opacity:.52}
.ps-employee-list article>i{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8f5f1;
  color:#14795c;
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.ps-employee-list article span strong,.ps-employee-list article span small{display:block}
.ps-employee-list article span strong{font-size:9px}
.ps-employee-list article span small{margin-top:4px;color:#8793a5;font-size:7px}
.ps-employee-list article>b{
  min-width:32px;
  padding:5px;
  border-radius:7px;
  background:#edf4fa;
  color:var(--ps-blue);
  text-align:center;
  font-size:8px;
}
.ps-employee-list article>div{display:flex;gap:4px}
.ps-employee-list article button{
  padding:6px 8px;
  border:1px solid #dce3eb;
  border-radius:7px;
  background:#fff;
  color:var(--ps-blue);
  cursor:pointer;
  font-size:7px;
}
.ps-employee-list article button.danger{color:#aa394b}
.ps-modal-empty{padding:26px;text-align:center;color:#8a97a8;font-size:9px}
.ps-approval-form{
  margin-top:13px;
  padding:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  border:1px solid #d9e8e2;
  border-radius:14px;
  background:#f4faf8;
}
.ps-approval-form>div{grid-column:span 2}
.ps-approval-form>div span{color:var(--ps-mint);font-size:7px;font-weight:800}
.ps-approval-form>div h3{margin:5px 0 0;font-size:13px}
.ps-approval-form>button{grid-column:span 2}
.ps-code-guide{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ps-code-guide article{
  padding:10px;
  display:grid;
  grid-template-columns:45px 1fr auto;
  gap:9px;
  align-items:center;
  border:1px solid color-mix(in srgb,var(--shift-color) 22%,white);
  border-radius:11px;
  background:var(--shift-bg);
}
.ps-code-guide article>b{
  width:40px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#fff;
  color:var(--shift-color);
  font-size:9px;
}
.ps-code-guide article span strong,.ps-code-guide article span small{display:block}
.ps-code-guide article span strong{font-size:8px}
.ps-code-guide article span small{margin-top:3px;color:#8290a2;font-size:6px}
.ps-code-guide article>em{color:#718096;font-size:7px;font-style:normal}
.ps-alert-list{padding:16px}
.ps-alert-list article{
  margin-bottom:7px;
  padding:11px;
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid #f0dfbb;
  border-radius:11px;
  background:#fff8e9;
}
.ps-alert-list article.danger{border-color:#efd2d8;background:#fff1f3}
.ps-alert-list article>i{
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#e6b24b;
  color:#fff;
  font-size:9px;
  font-style:normal;
  font-weight:800;
}
.ps-alert-list article.danger>i{background:var(--ps-red)}
.ps-alert-list article strong,.ps-alert-list article small{display:block}
.ps-alert-list article strong{font-size:9px}
.ps-alert-list article small{margin-top:4px;color:#778599;font-size:7px;line-height:1.65}
.ps-check-ok{padding:42px 18px;text-align:center}
.ps-check-ok i{
  width:48px;
  height:48px;
  margin:auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e7f6f0;
  color:var(--ps-mint);
  font-size:20px;
  font-style:normal;
}
.ps-check-ok strong{display:block;margin-top:11px;font-size:13px}
.ps-check-ok p{margin:6px 0 0;color:var(--ps-muted);font-size:8px}
.ps-cell-modal{width:min(650px,calc(100% - 28px))}
.ps-code-picker{padding:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ps-code-picker button{
  min-height:70px;
  padding:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb,var(--shift-color) 22%,white);
  border-radius:11px;
  background:var(--shift-bg);
  color:var(--shift-color);
  cursor:pointer;
}
.ps-code-picker button.selected{outline:3px solid color-mix(in srgb,var(--shift-color) 28%,transparent)}
.ps-code-picker b{font-size:10px}
.ps-code-picker span{margin-top:5px;color:#65758b;font-size:7px}
.ps-pdf-holder{
  position:fixed;
  left:-20000px;
  top:0;
  z-index:-1;
  width:1600px;
  padding:20px;
  background:#fff;
}
.ps-pdf-holder .ps-schedule-card{box-shadow:none}

@media(max-width:900px){
  .ps-heading{align-items:flex-start;flex-direction:column}
  .ps-period{width:100%}
  .ps-period label{flex:1}
  .ps-toolbar{align-items:flex-start;flex-direction:column}
  .ps-stats{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .ps-topbar{padding:10px 13px}
  .ps-brand small,.ps-top-actions{display:none}
  .ps-content{width:calc(100% - 20px);padding-top:20px}
  .ps-unit-switch{grid-template-columns:1fr}
  .ps-unit-switch button{min-height:54px}
  .ps-period{flex-direction:column}
  .ps-toolbar>div{width:100%}
  .ps-toolbar button{flex:1}
  .ps-stats{grid-template-columns:1fr 1fr}
  .ps-stats article{padding:13px}
  .ps-schedule-table .ps-employee-name{min-width:155px;max-width:155px}
  .ps-approval{grid-template-columns:1fr;gap:25px}
  .ps-employee-form,.ps-approval-form{grid-template-columns:1fr}
  .ps-approval-form>div,.ps-approval-form>button{grid-column:auto}
  .ps-employee-list article{grid-template-columns:34px 1fr auto}
  .ps-employee-list article>div{grid-column:2/span 2}
  .ps-code-guide{grid-template-columns:1fr}
  .ps-code-picker{grid-template-columns:repeat(3,1fr)}
}
@media print{
  body.ps-printing>*:not(#rifd-pharmacy-roster-root){display:none!important}
  body.ps-printing{overflow:visible!important;background:#fff!important}
  body.ps-printing #rifd-pharmacy-roster-root{
    position:static!important;
    display:block!important;
    overflow:visible!important;
    background:#fff!important;
  }
  body.ps-printing .ps-topbar,
  body.ps-printing .ps-heading,
  body.ps-printing .ps-toolbar,
  body.ps-printing .ps-stats,
  body.ps-printing .ps-storage-note,
  body.ps-printing .ps-modal,
  body.ps-printing .ps-modal-backdrop{display:none!important}
  body.ps-printing .ps-content{width:100%!important;padding:0!important}
  body.ps-printing .ps-schedule-card{border:0!important;box-shadow:none!important}
  body.ps-printing .ps-table-scroll{overflow:visible!important}
  body.ps-printing .ps-schedule-table{width:100%!important;table-layout:fixed}
  body.ps-printing .ps-schedule-table th,
  body.ps-printing .ps-schedule-table td{position:static!important;min-width:0!important;padding:2px!important}
  body.ps-printing .ps-schedule-table .ps-employee-name{width:120px!important}
}
