:root{
  --ws-bg1:#f4f7ff;
  --ws-bg2:#eefaf4;
  --ws-ink:#0f172a;
  --ws-muted:#64748b;
  --ws-card:#ffffffcc;
  --ws-line:#e2e8f0;
  --ws-primary:#0ea5a6;
}
.ws-root,.ws-root *{box-sizing:border-box;}
.ws-root{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ws-ink);width:100%;height:auto;min-height:100%;overflow:visible;}
.ws-app-bg{
  background:none;
  width:100%;
  height:auto;
  min-height:100%;
  padding:12px;
  overflow:visible;
}
.ws-app-shell{
  width:100%;
  height:auto;
  min-height:0;
  max-width:100%;
  margin:0;
  background:var(--ws-card);
  backdrop-filter:blur(8px);
  border:1px solid #ffffffa8;
  border-radius:18px;
  padding:18px;
  box-shadow:0 14px 40px rgba(15,23,42,.08);
  display:block;
  overflow:visible;
}
.ws-scheduler-viewport{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;}
.ws-page-title{font-size:30px;line-height:1.1;font-weight:800;letter-spacing:-.02em;}
.ws-page-sub{font-size:13px;color:var(--ws-muted);margin-top:4px;}
.ws-scheduler-card{width:100%;background:#fff;border:1px solid var(--ws-line);border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(15,23,42,.06);} 
.ws-week-head{background:#f8fafc;color:var(--ws-muted);} 
.ws-shift{padding:6px;margin:4px 0;border-radius:6px;font-size:11px;border-left:4px solid;cursor:pointer;position:relative;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;}
.ws-shift:hover{transform:none;box-shadow:none;} 
.ws-shift-dragging{opacity:.55;}
.ws-shift-overlap{box-shadow:0 0 0 2px #f59e0b inset;}
.ws-red{background:#fdecec;border-color:#ef4444;color:#b91c1c;}
.ws-drop-cell{min-height:72px;}
.ws-drop-cell-drag-over{background:#eef2ff;}
.ws-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;}
.ws-badge-leave{background:#fee2e2;color:#991b1b;}
.ws-badge-overlap{background:#ffedd5;color:#9a3412;margin-left:6px;}
.ws-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:center;justify-content:center;z-index:40;}
.ws-modal{width:min(94vw,560px);background:#fff;border-radius:12px;box-shadow:0 16px 44px rgba(0,0,0,.22);padding:18px;}
.ws-input,.ws-select{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:8px 10px;font-size:14px;background:#fff;}
.ws-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ws-btn{border:1px solid var(--ws-line);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px;background:#fff;color:#1f2937;}
.ws-btn:hover{transform:translateY(-1px);} 
.ws-btn-primary{background:linear-gradient(135deg,var(--ws-primary),#14b8a6);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(20,184,166,.3);} 
.ws-btn-danger{background:#ef4444;color:#fff;}
.ws-toolbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:14px 0 16px;}
.ws-toolbar-left,.ws-toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.ws-range-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px;
  border-radius:999px;
  background:linear-gradient(180deg,#f8fafc,#eef2f7);
  border:1px solid #dbe4ef;
  box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.ws-range-pill-month{padding:4px 6px;}
.ws-range-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid #e2e8f0;
  color:#0f172a;
  font-size:12px;
  font-weight:700;
  letter-spacing:.01em;
}
.ws-range-sep{
  color:#64748b;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.ws-icon{font-family:"Material Symbols Outlined";font-weight:normal;font-style:normal;font-size:18px;line-height:1;display:inline-block;}
.ws-empty-hint{display:flex;align-items:center;justify-content:center;gap:6px;border:1px dashed #cbd5e1;border-radius:10px;padding:8px;color:#64748b;background:#f8fafc;font-size:11px;cursor:pointer;}
.ws-empty-hint:hover{background:#f1f5f9;color:#334155;}
.ws-emp-name{font-size:13px;font-weight:700;color:#0f172a;}
.ws-emp-meta{font-size:11px;color:#64748b;}
.ws-grid{display:grid;}
.ws-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr));}
.ws-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr));}
.ws-p-4{padding:1rem;}
.ws-p-3{padding:.75rem;}
.ws-p-2{padding:.5rem;}
.ws-font-medium{font-weight:500;}
.ws-text-center{text-align:center;}
.ws-text-sm{font-size:.875rem;}
.ws-text-xs{font-size:.75rem;}
.ws-border{border:1px solid var(--ws-line);}
.ws-border-t{border-top:1px solid var(--ws-line);}
.ws-overflow-auto{overflow:auto;}
.ws-auto-rows-month{grid-auto-rows:140px;}
.ws-month-card{padding:10px;background:#fff;}
.ws-month-head{
  background:#f8fafc;
  border:1px solid var(--ws-line);
  border-radius:8px;
  overflow:hidden;
}
.ws-month-weekday{
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#64748b;
}
.ws-month-grid{
  margin-top:10px;
  gap:8px;
}
.ws-month-grid > div{
  border-radius:8px;
  border-color:#dbe4ef;
  background:#ffffff;
}
.ws-month-empty{
  background:#f8fafc;
  border-style:dashed;
}
.ws-month-day{
  box-shadow:none;
  transition:box-shadow .15s ease, transform .15s ease;
}
.ws-month-day:hover{
  transform:none;
  box-shadow:none;
}
.ws-month-day-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-weight:700;
}
.ws-mb-1{margin-bottom:.25rem;}
.ws-mt-2{margin-top:.5rem;}
.ws-mt-4{margin-top:1rem;}
.ws-gap-2{gap:.5rem;}
.ws-flex{display:flex;}
.ws-justify-end{justify-content:flex-end;}
.ws-mr-auto{margin-right:auto;}
.ws-hidden{display:none;}
.ws-label{font-size:12px;color:#64748b;display:block;margin-bottom:4px;}
@media (max-width:768px){
  .ws-app-bg{padding:12px;}
  .ws-page-title{font-size:24px;}
}
