.ts-shell{width:100%;max-width:100%;min-width:0}.ts-shell[hidden],#tsLegacyForm[hidden],#tsEditor[hidden]{display:none!important}
.ts-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px}.ts-heading h2{margin:0 0 6px}.ts-heading p{color:#667085;margin:0;font-size:13px}
.ts-modes,.ts-actions{display:flex;gap:8px;flex-wrap:wrap}.ts-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.ts-controls .form-group{margin-bottom:0;min-width:130px;flex:1}.ts-controls #tsYear{max-width:125px}.ts-roster{align-items:flex-end}
.ts-notice{background:#f4f7fc;border:1px solid #dae5f1;padding:10px 12px;border-radius:9px;color:#344054;font-size:13px}
.ts-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:#475467;font-size:13px;margin:12px 0}
.ts-status{font-weight:700;border-radius:99px;padding:6px 10px;background:#f1f5f9;color:#344054}
.ts-table-wrap{border:1px solid #dfe5ee;border-radius:12px;width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;max-height:64vh}
.ts-grid{border-collapse:separate;border-spacing:0;font-size:12px;width:max-content;min-width:100%;white-space:nowrap}
.ts-grid th,.ts-grid td{padding:5px 6px;border-bottom:1px solid #e8edf3;background:#fff;text-align:center;vertical-align:middle}
.ts-grid thead th{position:sticky;top:0;z-index:3;background:#f1f5fb;box-shadow:0 1px 0 #d8e0ec}
.ts-grid th:first-child,.ts-grid td:first-child{position:sticky;left:0;z-index:2;text-align:left;min-width:200px;max-width:240px;white-space:normal;background:#fff;box-shadow:1px 0 0 #d8e0ec}
.ts-grid thead th:first-child{z-index:5;background:#f1f5fb}
.ts-grid td:nth-child(2){min-width:110px}
.ts-grid .ts-person{display:flex;justify-content:space-between;gap:6px;align-items:center}
.ts-grid .ts-person button{border:0;background:transparent;color:#b42318;cursor:pointer;font-size:17px;padding:0 4px}
.ts-grid .ts-day{width:47px;min-width:47px;padding:6px 4px}
.ts-grid .ts-day[data-kind="off"],.ts-grid .ts-day[data-kind="leave"],.ts-grid .ts-day[data-kind="sick"],.ts-grid .ts-day[data-kind="absent"]{background:#f2f4f7;color:#667085}
.ts-grid .ts-day[data-kind="leave"]{background:#eff8ff}.ts-grid .ts-day[data-kind="sick"]{background:#fff2e0}.ts-grid .ts-day[data-kind="absent"]{background:#fce8e8}
.ts-grid .ts-day input{box-sizing:border-box;width:38px;min-width:38px;border:1px solid transparent;border-radius:5px;text-align:center;font:inherit;padding:4px 0;background:transparent}
.ts-grid .ts-day input:focus{border-color:#175cd3;outline:2px solid #cde2ff}
.ts-grid .ts-day input:disabled{opacity:.7}
.ts-grid .ts-rate{box-sizing:border-box;max-width:100px;min-width:75px;width:100%;font-size:12px;padding:6px;border:1px solid #d0d5dd;border-radius:6px}
.ts-grid .ts-money{font-weight:650}
.ts-grid .ts-day-head{font-size:11px}.ts-grid .ts-day-head.weekend{background:#f0f3f8;color:#667085}
.ts-metrics{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.ts-metrics>div{border:1px solid #dfe5ed;background:#fbfcff;border-radius:10px;padding:10px 14px;flex:1;min-width:135px}.ts-metrics b{display:block;font-size:16px}.ts-metrics small{color:#667085}
.ts-notes{margin:12px 0}.ts-notes textarea{width:100%;box-sizing:border-box}
.ts-footnote{color:#667085;font-size:12px;margin:14px 0 0;line-height:1.5}
@media(max-width:720px){.ts-heading h2{font-size:19px}.ts-controls .form-group{min-width:115px}.ts-modes{width:100%}.ts-modes button{flex:1}.ts-controls #tsYear{max-width:none}.ts-table-wrap{max-height:62vh}.ts-grid th:first-child,.ts-grid td:first-child{min-width:128px;max-width:150px;font-size:11px}.ts-grid .ts-rate{width:85px}.ts-actions .btn{flex:1 1 auto}.ts-metrics>div{min-width:105px}.ts-heading p{font-size:12px}}
.ts-mobile-cards{display:none}.ts-mobile-card{border:1px solid #dfe5ed;border-radius:12px;margin:12px 0;padding:0 12px 12px;background:#fff}
.ts-mobile-card summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:14px 0}.ts-mobile-card summary span{display:flex;flex-direction:column;gap:3px}.ts-mobile-card summary small{color:#667085;font-size:11px}
.ts-mobile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.ts-mobile-fields label{display:flex;flex-direction:column;font-size:11px;color:#475467;gap:5px}
.ts-mobile-fields input,.ts-mobile-fields select{width:100%;box-sizing:border-box;min-width:0;padding:10px 7px;border:1px solid #cdd5df;border-radius:6px;font-size:14px}
.ts-mobile-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:14px 0}
.ts-mobile-day{display:flex;flex-direction:column;align-items:center;gap:4px;border-radius:7px;background:#eef4fc;padding:6px 2px;min-width:0}
.ts-mobile-day small{font-size:10px;font-weight:600}.ts-mobile-day input{width:100%;box-sizing:border-box;min-width:0;max-width:41px;text-align:center;border:1px solid #cbd5e1;background:#fff;padding:7px 0;border-radius:5px;font-size:13px}
.ts-mobile-day button{border:0;background:none;font-size:12px;color:#344054;cursor:pointer}.ts-mobile-day[data-kind="off"]{background:#f2f4f7}.ts-mobile-day[data-kind="sick"]{background:#fff2e0}.ts-mobile-day[data-kind="leave"]{background:#ebf6ff}.ts-mobile-day[data-kind="absent"]{background:#ffebe9}
@media(max-width:720px){.ts-table-wrap{display:none}.ts-mobile-cards{display:block}.ts-mobile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ts-rate-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px}.ts-rate-tools span{font-size:12px;color:#667085}.ts-rate-manager{margin:10px 0 18px;border:1px solid #cad9ed;border-radius:12px;padding:18px;background:#f8fbff}.ts-rate-manager[hidden]{display:none!important}.ts-rate-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ts-rate-fields .form-group{min-width:0}.ts-rate-fields .form-group input,.ts-rate-fields .form-group select{width:100%;box-sizing:border-box}.ts-rate-wide{grid-column:span 2}.ts-rule-list{display:grid;gap:8px;margin-bottom:15px}.ts-rate-rule{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #dee7f2;background:#fff;border-radius:9px;padding:10px 12px}.ts-rate-rule div{display:flex;flex-direction:column;gap:5px;font-size:12px}.ts-rate-rule small{color:#667085}.ts-day button{font-size:10px;margin:0 1px;padding:1px 2px;border:0;background:#e4eaf3;border-radius:3px;cursor:pointer}.ts-mobile-day button{font-size:11px}@media(max-width:720px){.ts-rate-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-rate-wide{grid-column:span 2}.ts-rate-rule{align-items:flex-start;flex-wrap:wrap}.ts-rate-manager{padding:12px}}

/* KOVLEON mobile timesheet layout: scope controls to prevent interference
   from generic header/form/card rules; iOS native date/select need min-inline-size:0. */
#timesheetWorkspace,
#timesheetWorkspace .ts-page-heading,
#timesheetWorkspace #tsArea,
#timesheetWorkspace .ts-rate-manager,
#timesheetWorkspace .ts-rate-fields,
#timesheetWorkspace .ts-rate-fields .form-group {
  min-inline-size:0;
  max-inline-size:100%;
  box-sizing:border-box;
}
#timesheetWorkspace .ts-page-heading{
  color:#16213e;
}
#timesheetWorkspace .ts-page-heading h2,
#timesheetWorkspace .ts-rate-heading h3{
  color:#18263f;
  line-height:1.25;
}
#timesheetWorkspace .ts-page-heading p,
#timesheetWorkspace .ts-rate-heading p{
  line-height:1.45;
}
#timesheetWorkspace .ts-rate-fields .form-group{
  min-width:0;
  margin:0;
}
#timesheetWorkspace .ts-rate-fields .form-group label{
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
  line-height:1.35;
}
#timesheetWorkspace .ts-rate-fields .form-group input,
#timesheetWorkspace .ts-rate-fields .form-group select{
  display:block;
  min-width:0;
  min-inline-size:0;
  max-width:100%;
  max-inline-size:100%;
  width:100%;
  box-sizing:border-box;
  font-family:inherit;
}
#timesheetWorkspace .ts-rate-fields .form-group input[type="date"]{
  min-width:0;
  min-inline-size:0;
  text-align:left;
  background-color:#fff;
  color:#101828;
}
#timesheetWorkspace .ts-rate-fields .form-group input[type="date"]::-webkit-date-and-time-value{
  text-align:left;
}
#timesheetWorkspace .ts-rate-fields .form-group input[type="date"]::-webkit-datetime-edit{
  padding:0;
}
#timesheetWorkspace .ts-rate-wide{
  grid-column:1/-1;
}
#timesheetWorkspace .ts-rate-rule,
#timesheetWorkspace .ts-rate-rule>div{
  min-width:0;
  overflow-wrap:anywhere;
}
#timesheetWorkspace .ts-rate-rule strong,
#timesheetWorkspace .ts-rate-rule span,
#timesheetWorkspace .ts-rate-rule small{
  white-space:normal;
  overflow-wrap:anywhere;
}
#timesheetWorkspace .ts-rate-tools>span{
  line-height:1.45;
}

@media (max-width:720px){
  #timesheetWorkspace .ts-page-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    padding:14px;
    margin-bottom:12px;
    border:1px solid #e1e6ee;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.04);
    text-align:left;
  }
  #timesheetWorkspace .ts-page-heading h2{
    font-size:19px;
    margin:0 0 4px;
    letter-spacing:-.02em;
  }
  #timesheetWorkspace .ts-page-heading p{
    font-size:12px;
    color:#667085;
    margin:0;
  }
  #timesheetWorkspace .ts-page-heading .ts-modes{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    min-width:0;
  }
  #timesheetWorkspace .ts-page-heading .ts-modes button{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px 8px;
    min-width:0;
    width:100%;
    box-sizing:border-box;
    min-height:46px;
    font-size:13px;
    line-height:1.25;
    white-space:normal;
    text-align:center;
    overflow-wrap:anywhere;
    border-radius:8px;
  }
  #timesheetWorkspace #tsArea{
    padding:14px;
    overflow:visible;
  }
  #timesheetWorkspace #tsArea>.ts-controls{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    align-items:end;
    width:100%;
  }
  #timesheetWorkspace #tsArea>.ts-controls>.form-group,
  #timesheetWorkspace #tsArea>.ts-controls>div{
    width:100%;
    min-width:0;
    max-width:100%;
    margin:0;
  }
  #timesheetWorkspace #tsArea>.ts-controls select,
  #timesheetWorkspace #tsArea>.ts-controls input,
  #timesheetWorkspace #tsArea>.ts-controls button{
    box-sizing:border-box;
    display:block;
    min-width:0;
    width:100%;
    max-width:100%;
    min-height:46px;
  }
  #timesheetWorkspace .ts-rate-tools{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    margin-bottom:14px;
  }
  #timesheetWorkspace .ts-rate-tools button{
    width:100%;
    min-width:0;
    min-height:44px;
    white-space:normal;
    line-height:1.35;
  }
  #timesheetWorkspace .ts-rate-tools>span{
    font-size:12px;
    color:#667085;
    overflow-wrap:anywhere;
  }
  #timesheetWorkspace .ts-rate-manager{
    min-width:0;
    padding:14px;
    margin:12px 0 16px;
    overflow:visible;
    border-radius:12px;
  }
  #timesheetWorkspace .ts-rate-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    margin-bottom:14px;
    padding:0;
    background:transparent;
    color:#18263f;
    text-align:left;
  }
  #timesheetWorkspace .ts-rate-heading h3{
    font-size:17px;
    margin:0 0 5px;
    overflow-wrap:anywhere;
  }
  #timesheetWorkspace .ts-rate-heading p{
    color:#667085;
    font-size:12px;
  }
  #timesheetWorkspace .ts-rate-heading button{
    justify-self:start;
    min-width:0;
    min-height:40px;
    width:auto;
    padding:9px 16px;
  }
  #timesheetWorkspace .ts-rate-fields{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:13px;
    width:100%;
    max-width:100%;
  }
  #timesheetWorkspace .ts-rate-fields .form-group input,
  #timesheetWorkspace .ts-rate-fields .form-group select{
    min-height:48px;
    font-size:16px!important;
    padding:10px 12px;
  }
  #timesheetWorkspace #tsRateSaveBtn{
    display:block;
    width:100%;
    min-width:0;
    min-height:48px;
    margin-top:16px;
    line-height:1.3;
    white-space:normal;
  }
  #timesheetWorkspace .ts-rate-rule{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    padding:12px;
  }
  #timesheetWorkspace .ts-rate-rule .btn{
    justify-self:start;
    width:auto;
  }
  #timesheetWorkspace .ts-rate-fields .ts-rate-wide{
    grid-column:1/-1;
  }
}
